Nullable(Of T)的空值是多少?

时间:2020-03-05 18:55:59  来源:igfitidea点击:

我有一个可为空的属性,并且我想返回一个空值。如何在VB.NET中做到这一点?

目前,我使用此解决方案,但我认为可能会有更好的方法。

Public Shared ReadOnly Property rubrique_id() As Nullable(Of Integer)
        Get
            If Current.Request.QueryString("rid") <> "" Then
                Return CInt(Current.Request.QueryString("rid"))
            Else
                Return (New Nullable(Of Integer)).Value
            End If
        End Get
    End Property

解决方案

回答

我们是否在寻找关键字" Nothing"?

回答

是的,在VB.NET中为空,在C#中为null。

Nullable通用数据类型使编译器可以为值类型分配" Nothing"(或者null)值,而没有明确地编写它,则无法执行。

C#中的可空类型

回答

Public Shared ReadOnly Property rubrique_id() As Nullable(Of Integer)
    Get
        If Current.Request.QueryString("rid") <> "" Then
            Return CInt(Current.Request.QueryString("rid"))
        Else
            Return Nothing
        End If
    End Get
End Property

回答

或者这就是我使用的方式,说实话,ReSharper教会了我:)

finder.Advisor = ucEstateFinder.Advisor == "-1" ? (long?)null : long.Parse(ucEstateFinder.Advisor);

在上面的分配中,如果我直接将NULL分配给finder.Advisor *(long?)*不会有问题。但是,如果我尝试使用if子句,则需要将其强制转换为(long?)null