Nullable<T>.HasValue Propiedad
Definición
Obtiene un valor que indica si el objeto Nullable<T> actual tiene un valor válido de su tipo subyacente.Gets a value indicating whether the current Nullable<T> object has a valid value of its underlying type.
public:
property bool HasValue { bool get(); };
public bool HasValue { get; }
member this.HasValue : bool
Public ReadOnly Property HasValue As Boolean
Valor de propiedad
Es true
si el objeto Nullable<T> actual tiene un valor; es false
si el objeto Nullable<T> actual no tiene ningún valor.true
if the current Nullable<T> object has a value; false
if the current Nullable<T> object has no value.
Ejemplos
En el ejemplo siguiente se usa la HasValue propiedad de un Nullable<int>
Nullable(Of Integer)
objeto (en Visual Basic) para determinar si debe mostrar la propiedad del objeto Value o su GetValueOrDefault propiedad.The following example uses the HasValue property of a Nullable<int>
(Nullable(Of Integer)
in Visual Basic) object to determine whether it should display the object's Value property or its GetValueOrDefault property.
using System;
public class Example
{
public static void Main()
{
Nullable<int> n1 = new Nullable<int>(10);
Nullable<int> n2 = null;
Nullable<int> n3 = new Nullable<int>(20);
n3 = null;
Nullable<int>[] items = { n1, n2, n3 };
foreach (var item in items) {
Console.WriteLine("Has a value: {0}", item.HasValue);
if (item.HasValue) {
Console.WriteLine("Type: {0}", item.GetType().Name);
Console.WriteLine("Value: {0}", item.Value);
}
else {
Console.WriteLine("Null: {0}", item == null);
Console.WriteLine("Default Value: {0}", item.GetValueOrDefault());
}
Console.WriteLine();
}
}
}
// The example displays the following output:
// Has a value: True
// Type: Int32
// Value: 10
//
// Has a value: False
// Null: True
// Default Value: 0
//
// Has a value: False
// Null: True
// Default Value: 0
Module Example
Public Sub Main()
Dim n1 As New Nullable(Of Integer)(10)
Dim n2 As Nullable(Of Integer)
Dim n3 As New Nullable(Of Integer)(20)
n3 = Nothing
Dim items() As Nullable(Of Integer) = { n1, n2, n3 }
For Each item In items
Console.WriteLine("Has a value: {0}", item.HasValue)
If item.HasValue Then
Console.WriteLine("Type: {0}", item.GetType().Name)
Console.WriteLine("Value: {0}", item.Value)
Else
Console.WriteLine("Null: {0}", item Is Nothing)
Console.WriteLine("Default Value: {0}", item.GetValueOrDefault())
End If
Console.WriteLine()
Next
End Sub
End Module
' The example displays the following output:
' Has a value: True
' Type: Int32
' Value: 10
'
' Has a value: False
' Null: True
' Default Value: 0
'
' Has a value: False
' Null: True
' Default Value: 0
Comentarios
Si la HasValue propiedad es true
, Nullable<T> se puede tener acceso al valor del objeto actual con la Value propiedad.If the HasValue property is true
, the value of the current Nullable<T> object can be accessed with the Value property. De lo contrario, si se intenta tener acceso a su valor, se produce una InvalidOperationException excepción.Otherwise, attempting to access its value throws an InvalidOperationException exception.