我看到该?
运算符在很多地方都使用过,并尝试使用 Google 和 StackOverflow 对其进行搜索,但两个搜索引擎都将其从查询中排除,并且没有返回任何好的答案。
这个运算符的含义是什么?我通常在类型声明之后看到它,例如:
int? x;
DateTime? t;
int
例如,以下两个声明有什么区别:
int? x;
// AND
int x;
我看到该?
运算符在很多地方都使用过,并尝试使用 Google 和 StackOverflow 对其进行搜索,但两个搜索引擎都将其从查询中排除,并且没有返回任何好的答案。
这个运算符的含义是什么?我通常在类型声明之后看到它,例如:
int? x;
DateTime? t;
int
例如,以下两个声明有什么区别:
int? x;
// AND
int x;
您可以阅读以下内容:Nullable 类型 - 为什么我们在编程语言中需要 Nullable 类型?
int? x;//this defines nullable int x
x=null; //this is possible
// AND
int x; // this defines int variable
x=null;//this is not possible
它不是运算符,int?
而是Nullable<int>
. Nullable<>
是允许设置一些值类型变量空值的容器。
Nullable 类型是 System.Nullable 结构的实例。可空类型可以表示其基础值类型的正常值范围,外加一个额外的空值。
int? x;
相当于
Nullable<int> x;
?
运算符指示类型可以为空。例如;
int? x = null; //works properly since x is nullable
和
int x = null; //NOT possible since x is NOT nullable
请注意,您访问变量值的方式会发生变化;
int? x = null;
int y = 0;
if (x.HasValue)
{
y = x.Value; // OK
}
和
y = x; //not possible since there is no direct conversion between types.
黑白差异?和 int 是 int 吗?可以存储 null 但 int 不能。
诠释?被称为可空运算符,它基本上在处理数据库实体时使用。
更多信息 - http://msdn.microsoft.com/en-us/library/1t3y8s4s(v=vs.80).aspx
希望这可以帮助 !!
该运算符使所有不可为空的对象都可以为空。所以这意味着如果你将声明一个变量int?x,它可以这样分配: int? x = 空。如果没有?符号,您不能为其分配空值。