什么时候应该使用隐式投射?
什么时候使用隐式转换是安全的?
用例 :我正在使用一组需要特别处理的com对象(Marshal.ReleaseComObject)。 是否可以创建一个隐式转换回包装的实际com对象的包装类?
我不应该使用隐式投射的情况是什么?
- 你需要经常执行这个演员。
- 没有办法避免演员表演。
- 它不能更好地表现为转换/投影function。 换句话说,它必须是演员之后的“同一个对象”。
- 您可以往返原始对象。 (但不是含蓄的。)
- 它不会混淆现有或可能的未来函数重载。
我通常将这些观点概括为“从不”,但具有讽刺意味的是,你的用例实际上听起来像一个观众……
您应该在(并且仅在何时)确定以下情况时使用隐式转换:
1.转换时没有信息(数据)丢失(或可能丢失)。
2.不能抛出exception。
3.不会发生无声失败(您将收到退化数据)。