Ond*_*ták 18
?使您的非可空(值)类型可为空.它不起作用string,因为它是引用类型,因此默认为可为空.
从MSDN,关于值类型:
与引用类型不同,值类型不能包含空值.但是,可空类型功能允许将值类型分配给null.
?基本上是一个简写Nullable<T> structure.
Nei*_*ght 11
这?是下面结构的简写:
struct Nullable<T>
{
public bool HasValue;
public T Value;
}
Run Code Online (Sandbox Code Playgroud)
您可以直接使用此结构,但这?是使结果代码更清晰的快捷语法.而不是键入:
Nullable<int> x = new Nullable<int>(125);
Run Code Online (Sandbox Code Playgroud)
相反,你可以写:
int? x = 125;
Run Code Online (Sandbox Code Playgroud)
这不适用于字符串,因为字符串是引用类型而不是值类型.