Jon*_*eet 110
提升运算符是通过"提升"已经存在于非可空形式上的运算符来处理可空类型的运算符.例如,如果你这样做:
int? x = 10;
int? y = 10;
int? z = x + y;
Run Code Online (Sandbox Code Playgroud)
解除了"+"运算符.它实际上并不存在,Nullable<int>但C#编译器就像它一样,生成代码来做正确的事情.(在大多数情况下,这是检查任一操作数是否为null;如果是,则结果为null.否则,将两个操作数展开为其非可空值,使用普通运算符,然后将结果包装回一个可以通过比较来解决一些特殊情况.)
有关详细信息,请参阅C#规范的 6.4.2(提升转换运算符)和7.3.7(提升运算符).