Pregunta

Tengo una propiedad nullable, y quiero devolver un valor null.¿Cómo puedo hacer que en VB.NET ?

Actualmente yo uso esta solución, pero creo que no podría haber una mejor manera.

    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
¿Fue útil?

Solución

Estás buscando la palabra clave "Nada"?

Otros consejos

Sí, no es Nada en VB.NET o null en C#.

El que acepta valores null genérico de tipo de datos de dar el compilador de la posibilidad de asignar un "Nada" (o valor" null " a un tipo de valor.Sin explicitally escrito, usted no puede hacerlo.

Tipos que aceptan valores null 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

O esta es la forma en que uso, para ser honesto ReSharper me ha enseñado :)

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

En la asignación de arriba, si yo directamente asignar null a finder.Asesor*largo (?)* no habría ningún problema.Pero si intento utilizar si la cláusula necesito para lanzarla como que (long?)null.

Aunque Nothing puede ser utilizado, su código "existente" es casi correcta;simplemente no tratar de obtener 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

Esto entonces se convierte en la solución más simple si le sucede a reducirlo a un If expresión:

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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top