C# 类型转换、数组与泛型详解
1. 类型转换
在类型转换中,有对象转储函数可列出对象及其内部状态。部分对象内部状态复杂,需返回丰富信息;部分对象则依赖 ToString() 函数返回的信息。 IDebugDump 接口能很好地表达这一点,若对象实现了该接口,就用它生成输出。示例使用了 as 运算符,若对象实现了接口则返回接口,否则返回 null 。
接口类型转换规则如下:
- 接口引用可隐式转换为其基接口引用。
- 可显式转换为非基接口引用,但前提是该接口引用指向的对象也实现了另一个接口。
结构体(值类型)转换方面,唯一的内置转换是结构体到其实现接口的隐式转换。结构体实例会被装箱为引用,再转换为相应的接口引用,不存在从接口到结构体的隐式或显式转换。
2. 数组
2.1 数组基础
C# 中的数组是引用对象,在堆空间分配,而非栈上。数组元素存储方式取决于元素类型:
- 若元素为引用类型(如 string ),数组存储的是对字符串的引用。
- 若元素为值类型(如数值类型或结构体类型),元素直接存储在数组中,即值类型数组不包含装箱实例。
数组声明语法为 <type>[] identifier; ,初始值为 null 。可使用 new 创建数组对象,例如:
超级会员免费看
订阅专栏 解锁全文
1268

被折叠的 条评论
为什么被折叠?



