6
何时可以安全使用隐式转换?什么时候应该使用隐式投射?
使用案例:我正在处理一组需要专门照顾的com对象(Marshal.ReleaseComObject)。是否可以创建一个隐式转换回实际com对象的包装类?
有什么情况当我不应该使用隐式转换?
何时可以安全使用隐式转换?什么时候应该使用隐式投射?
使用案例:我正在处理一组需要专门照顾的com对象(Marshal.ReleaseComObject)。是否可以创建一个隐式转换回实际com对象的包装类?
有什么情况当我不应该使用隐式转换?
我平时总结这些点为“从不”,但讽刺你的使用情况实际上听起来像一个郎中......
您应该在(且仅当)确认以下情况时使用隐式转换:
1.转换时没有信息(数据)丢失(或可能丢失)。
2.不会抛出异常。
3.不会发生静默失败(您将收到退化的数据)。
只是挑剔:不存在“隐式转换”没有这样的事。您可以使用*转换操作符*来告诉编译器执行*显式转换*,或者可以省略转换操作符并执行*隐式转换*,但不存在*隐式转换*。 * cast *是出现在源代码中的东西;如果它没有出现,那么就没有* cast *。 – 2009-09-02 19:34:40