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
È stato utile?

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.

Tipi Nullable in 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

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top