Nullable(Of T)의 null 값은 무엇입니까?
문제
null 허용 속성이 있는데 null 값을 반환하고 싶습니다.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
해결책
"아무것도"라는 키워드를 찾고 계십니까?
다른 팁
예, VB.NET에서는 Nothing이고 C#에서는 null입니다.
Nullable 일반 데이터 유형을 사용하면 컴파일러는 값 유형에 "Nothing"(또는 null" 값)을 할당할 수 있습니다.명시적으로 작성하지 않으면 이를 수행할 수 없습니다.
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);
위 할당에서 finder.Advisor*(long?)*에 null을 직접 할당하면 문제가 없습니다.하지만 if 절을 사용하려고 하면 그렇게 캐스팅해야 합니다. (long?)null
.
하지만 Nothing
사용할 수 있으면 "기존" 코드가 거의 정확합니다.그냥 얻으려고 하지 마세요 .Value
:
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)
End If
End Get
End Property
그러면 이를 다음과 같이 줄이려는 경우 가장 간단한 솔루션이 됩니다. If
표현:
Public Shared ReadOnly Property rubrique_id() As Nullable(Of Integer)
Get
Return If(Current.Request.QueryString("rid") <> "", _
CInt(Current.Request.QueryString("rid")), _
New Nullable(Of Integer))
End Get
End Property
제휴하지 않습니다 StackOverflow