在vb.net中是否存在可以为空的bool这样的东西

Set*_*man 9 vb.net nullable

我正在研究我的新MVC书,当然,样本都像往常一样在c#中.

有一行代码说

public bool? WillAttend { get; set; }
Run Code Online (Sandbox Code Playgroud)

作者解释说,问号表明这是一个可以为空的(三态)布尔,可以是真的,错误的.或者为null.(新的C#3惯例.)

vb.net是否支持这样的任何约定.当然我可以在vb.net中声明一个布尔值,我可以显式地将其设置为Null(在vb.net中为Nothing).

有什么不同.在c#中还有更多内容吗?好处?

Kre*_*dns 40

您可以在VB中以3种方式声明可以为null的值:

Dim ridesBusToWork1? As Boolean
Dim ridesBusToWork2 As Boolean?
Dim ridesBusToWork3 As Nullable(Of Boolean)
Run Code Online (Sandbox Code Playgroud)

进一步阅读:MSDN - 可空值类型(Visual Basic).

  • 嘿 - 我从来不知道你可以添加?变量名后?太好了!我今天学了些新东西. (13认同)

Joe*_*orn 24

  1. bool?只是可以为null的值类型的简写语法:即Nullable<bool>
  2. 在VB.NET中,您可以使用以下任一项:Boolean?Nullable(Of Boolean).

你可以像这样写一个支持属性:

Private _willAttend As Nullable(Of Boolean)
Public Property WillAttend As Nullable(Of Boolean)
    Get
        Return _willAttend
    End Get
    Set(value As Nullable(Of Boolean))
        _willAttend = value
    End Set
End Property
Run Code Online (Sandbox Code Playgroud)

或者只使用这样的自动实现的属性:

Public Property WillAttend As Boolean?
Run Code Online (Sandbox Code Playgroud)