当我对课程进行逆向工程时,我得到以下内容:
public Nullable<bool> Correct { get; set; }
public Nullable<bool> Response { get; set; }
Run Code Online (Sandbox Code Playgroud)
我编码:
public bool? Correct { get; set; }
public bool? Response { get; set; }
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我这两者之间是否有任何区别.我还没有见过Nullable<bool>以前,我不确定为什么它不只是创造一个"布尔".
注意:我将编码更改为bool?回应Jon的评论
有人可以告诉我这两者之间是否有任何区别.我以前没见过Nullable,我不确定为什么它不只是创造一个"bool"
从技术上讲,Nullable和bool没什么区别?无论你写什么,他们都会编译成IL的Nullable.所以没有区别.的?只是C#编译器语法.
为什么需要系统为Nullable
这是因为它被用作type.并且类型需要在namespace.
但是bool和bool有区别吗?.由于bool是一个简单的值类型,不能赋值为null,而你可以为bool赋值?
Nullable表示value type可以赋值为null并且它位于命名空间中System.
此外,因为它可以被指定为null,因此您可以检查它是否具有这样的值
if(Correct.HasValue)
{
//do some work
}
Run Code Online (Sandbox Code Playgroud)