显式引用转换包括:
●从对象到任何引用类型
●从类类型S到类类型T,其中S是T的基类。
●从基类型S到接口类型T,其中S不是密封类,而且没有实现T。
●从接口类型S到类类型T,其中T不是密封类,而且没有实现S。
●从接口类型S到接口类型T,其中S不是T的子接口。
从元素类型为Ts的数组类型S到元素类型为Tt的数组类型T的转换,这种转换需要满足下列条件:
●S和T只有元素的数据类型不同,而维数相同。
●Ts和Tt都是引用类型。
●存在从Ts到Tt的显式引用转换。
●从System.Array到数组类型。
●从System.Delegate到代表类型。
●从System.ICloneable到数组类型或代表类型。
显式引用转换发生在引用类型之间,需要在运行时检测以确保正确。
为了确保显式引用转换的正常执行,要求源变量的值必须是null或者它所引用的对象的类型可以被隐式引用转换为目标类型。否则显式引用转换失败,将抛出一个InvalidCastException异常。
不论隐式还是显式引用转换,虽然可能会改变引用值的类型,却不会改变值本身。
本文来自编程入门网:http://www.bianceng.cn/Programming/csharp/200709/4347.htm