Jon*_*eet 13
环绕将非可空值类型转换为可为空的等效类型.解开是相反的.例如:
int x = 5;
int? y = x; // Wrapping
int z = (int) y; // Unwrapping
Run Code Online (Sandbox Code Playgroud)
C#规范实际上并没有调用这些"包装转换"和"解包转换",但它确实讨论了包装和解包.从C#5规范的4.1.10节或在线规范(强调我的):
假定为
HasValuefalse 的实例为空.null实例具有未定义的值.尝试读取Valuenull实例会导致System.InvalidOperationException抛出a.访问Value可空实例的属性的过程称为展开.除了默认构造函数之外,每个可空类型T?都有一个公共构造函数,它接受一个类型的参数T.给定xtype 的值,T表单的构造函数调用Run Code Online (Sandbox Code Playgroud)new T?(x)创造了一个非空的情况下
T?为其Value财产x.为给定值创建可空类型的非null实例的过程称为包装.
| 归档时间: |
|
| 查看次数: |
1042 次 |
| 最近记录: |