1、隐式类型转换有两种情况:单个形参构造方法和隐式类型转换操作符。
2、单个形参构造方法包括两种情况:声明只有单个形参;或者声明有多个形参,但是除了第一形参,其他的形参都有默认值,也就是说,只要单个形参就能构造对象。
3、隐式类型转换操作符,是一种特殊的方法,可以认为没有形参,没有返回方法,重载了目标类型的方法。
4、隐式类型转换可能在非预期的情况下进行。也就是说,程序员本来没有这个意图,但是编译器为了使方法调用成功,偷偷地进行了隐式转换。因此,隐式类型转应该尽量避免。
5、对于隐式类型转换操作符,最好不要提供,而是应该提供一个AsXXX()方法。
6、对于单个形参构造方法,有两种办法。
a、对于构造方法使用explicit,可以禁止隐式类型转换。这种情况下,可以显式地进行隐式类型转换。
b、增加一个代理类。这是因为,隐式类型转换最多只能进行一次。增加代理类,相当于需要进行两次隐式转换才能成功。这种情况下,编译器放弃执行。
【M5】对定制的“类型转换函数”保持警觉,布布扣,bubuko.com
原文:http://www.cnblogs.com/nzbbody/p/3578966.html