我何时应该使用隐式投射?

时间:2009-09-02 15:55:03

标签: c# .net casting

何时使用隐式强制转换是安全的?

用例:我正在使用一组需要特别处理的com对象(Marshal.ReleaseComObject)。是否可以创建一个隐式转换回包裹的实际com对象的包装类?

不应使用隐式转换时,有哪些情况?

2 个答案:

答案 0 :(得分:3)

您应该在(并且仅在何时)确定以下情况时使用隐式投射:
 1.转换时没有信息(数据)丢失(或丢失)  2.不能抛出异常。
 3.不会发生无声失败(您将收到退化数据)。

答案 1 :(得分:1)

  1. 你需要做很多演员。
  2. 没有办法避免演员。
  3. 它不能更好地表现为转换/投影功能。换句话说,它必须是演员之后的“同一个对象”。
  4. 您可以往返原始对象。 (但不是含蓄的。)
  5. 它不会弄乱现有的或可能的未来功能重载。
  6. 我通常将这些观点概括为“从不”,但具有讽刺意味的是,您的用例实际上听起来像是一个观众......