什么时候应该使用隐式投射?

什么时候使用隐式转换是安全的?

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

不应该使用隐式投射的情况是什么?

  1. 你需要经常执行这个演员。
  2. 没有办法避免演员表演。
  3. 它不能更好地表现为转换/投影function。 换句话说,它必须是演员之后的“同一个对象”。
  4. 您可以往返原始对象。 (但不是含蓄的。)
  5. 它不会混淆现有或可能的未来函数重载。

我通常将这些观点概括为“从不”,但具有讽刺意味的是,你的用例实际上听起来像一个观众……

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