Qual è il valore null di Nullable(T)?
Domanda
Ho un nullable proprietà, e voglio restituire un valore null.Come posso fare in modo che in VB.NET ?
Attualmente io uso questa soluzione, ma penso che ci potrebbe essere un modo migliore.
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
Soluzione
Si ricerca per la parola chiave "Nulla"?
Altri suggerimenti
Sì, non è Niente in VB.NET o null in C#.
Nullable generico datatype dare il compilatore ha la possibilità di assegnare un "Nulla" (o nullo valore" a un tipo di valore.Senza esplicitamente la scrittura, non si può fare.
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
O questo è il modo in cui io uso, ad essere onesti ReSharper mi ha insegnato :)
finder.Advisor = ucEstateFinder.Advisor == "-1" ? (long?)null : long.Parse(ucEstateFinder.Advisor);
Sull'assegnazione di sopra, se mi assegnare direttamente null per la ricerca.Consigliere*(lunga?)* non ci sarebbe nessun problema.Ma se cerco di usare se la clausola di cui ho bisogno per il cast di simile (long?)null
.
Anche se Nothing
può essere utilizzato, il codice "esistente" è quasi corretto;basta non tentare di ottenere la .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
Questo diventa quindi la soluzione più semplice, se vi capita di voler ridurre a un If
espressione:
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