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
。