Question

J'ai une propriété nullable et je veux renvoyer une valeur null. Comment faire cela dans VB.NET?

Actuellement, j'utilise cette solution, mais je pense qu'il pourrait y avoir un meilleur moyen.

    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
Était-ce utile?

La solution

Recherchez-vous le mot clé "Rien"?

Autres conseils

Oui, rien dans VB.NET ou null en C #.

Le type de données générique Nullable donne au compilateur la possibilité d’attribuer un paramètre "Nothing". (ou null "dans un type de valeur. Sans l'écrire explicitement, vous ne pouvez pas le faire.

Types nullables en 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

Ou c’est ce que j’utilise, à vrai dire, ReSharper m’a appris:)

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

Sur l'assignation ci-dessus, si j'assigne directement null à finder.Advisor * (long?) *, il n'y aurait pas de problème. Mais si j’essaie d’utiliser if clause, j’ai besoin de le convertir comme ça (long?) Null .

Bien que rien ne puisse être utilisé, votre " existant " le code est presque correct; essayez simplement d’obtenir 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

Cela devient alors la solution la plus simple si vous souhaitez la réduire à une expression 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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top