C# 类型转换与表达式详解
1. 类型转换
类型转换在编程中是一个常见的操作,C# 提供了多种类型转换方式,包括标准隐式转换、标准显式转换以及用户自定义转换。
1.1 标准隐式转换
标准隐式转换包含装箱转换和隐式常量表达式转换,但不包括用户自定义的隐式转换。
1.2 标准显式转换
标准显式转换是所有标准隐式转换加上存在相反标准隐式转换的显式子集。也就是说,如果存在从类型 A 到类型 B 的标准隐式转换,那么就存在从类型 A 到类型 B 以及从类型 B 到类型 A 的标准显式转换。
1.3 用户自定义转换
C# 允许通过在类和结构体类型中声明转换运算符来扩展预定义的隐式和显式转换。
-
允许的用户自定义转换 :
- S 和 T 是不同的类型。
- S 或 T 是声明运算符的类或结构体类型。
- S 和 T 都不是对象或接口类型。
- T 不是 S 的基类,S 也不是 T 的基类。
-
用户自定义转换的评估 :
- 找到将考虑用户自定义转换运算符的类和结构体集合。该集合由源类型及其基类、目标类型及其基类组成。
- 从该类型集合中,确定哪些用户自定义转换运算符适用。对于一个转换运算符要适用,必须能够从源类型到运算符的参数类型执行标准转换,并且必须能够从运算符的
超级会员免费看
订阅专栏 解锁全文

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



