首页 百科知识 隐式引用转换

隐式引用转换

时间:2022-10-19 百科知识 版权反馈
【摘要】:4.1.3 隐式引用转换隐式引用转换包括以下几类:从任何引用类型到对象类型的转换。从元素类型为Ts的数组类型S到元素类型为Tt的数组类型T转换,这种转换需要满足下列条件:①S和T只有元素的数据类型不同,但它们的维数相同;②Ts和Tt都是引用类型;③存在从Ts到Tt的隐式引用转换。下面的程序就无法通过编译,因为数组的元素类型是值类型,C#中不存在这样的隐式转换。

4.1.3 隐式引用转换

隐式引用转换包括以下几类:

(1)从任何引用类型到对象类型的转换。

(2)从类类型s到类类型t的转换,其中s是t的派生类。

(3)从类类型s到接口类型t的转换,其中类s实现了接口t。

(4)从接口类型s到接口类型t的转换,其中t是s的父接口。

(5)从元素类型为Ts的数组类型S到元素类型为Tt的数组类型T转换,这种转换需要满足下列条件:

①S和T只有元素的数据类型不同,但它们的维数相同;

②Ts和Tt都是引用类型;

③存在从Ts到Tt的隐式引用转换。

(6)从任何数组类型到System.Array的转换。

(7)从任何代理类型到System.Delegate的转换。

(8)从任何数组类型或代理类型到System.ICloneable的转换。

(9)从空类型null到任何引用类型的转换。

下面的程序就无法通过编译,因为数组的元素类型是值类型,C#中不存在这样的隐式转换。

【程序清单4-3】

img51

而下面这段程序则是正确的。

【程序清单4-4】

img52

img53

[程序清单4-5]很有趣,它给出了常用的值类型在系统环境中的原型定义。

【程序清单4-5】

img54

程序的输出如图4-3所示。

img55

图4-3 直接输出数组名的结果

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈