通常,问号主要用于条件句x ?“yes”:“no”。
但我看到过它的另一种用法,但找不到解释?例如,操作员。
public int? myProperty
{
get;
set;
}
通常,问号主要用于条件句x ?“yes”:“no”。
但我看到过它的另一种用法,但找不到解释?例如,操作员。
public int? myProperty
{
get;
set;
}
当前回答
表示用(int?)声明的变量是可空的
int i1=1; //ok
int i2=null; //not ok
int? i3=1; //ok
int? i4=null; //ok
其他回答
它声明该类型是可空的。
它是Nullable<int>的缩写。Nullable<T>用于允许将值类型设置为null。值类型通常不能为空。
为了补充上面的答案,这里有一个代码示例
struct Test
{
int something;
}
struct NullableTest
{
int something;
}
class Example
{
public void Demo()
{
Test t = new Test();
t = null;
NullableTest? t2 = new NullableTest();
t2 = null;
}
}
这将给出一个编译错误:
错误12不能将null转换为“Test”,因为它是非空的 值类型
注意NullableTest没有编译错误。(注意?在t2的声明中)
实际的用法:
public string someFunctionThatMayBeCalledWithNullAndReturnsString(int? value)
{
if (value == null)
{
return "bad value";
}
return someFunctionThatHandlesIntAndReturnsString(value);
}
In
x ? "yes" : "no"
的吗?声明一个if语句。这里:x表示布尔条件;在:之前的部分是then句,之后的部分是else句。
例如,
int?
的吗?声明一个可空类型,并意味着它前面的类型可能有一个空值。