This browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
Note
Access to this page requires authorization. You can trysigning in orchanging directories.
Access to this page requires authorization. You can trychanging directories.
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Gets a value indicating whether the currentNullable<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
true
if the currentNullable<T> object has a value;false
if the currentNullable<T> object has no value.
The following example uses theHasValue property of aNullable<int>
(Nullable(Of Integer)
in Visual Basic) object to determine whether it should display the object'sValue property or itsGetValueOrDefault 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
open Systemlet n1 = Nullable 10let n2 = Nullable()let mutable n3 = Nullable 20n3 <- Nullable()let items = [| n1; n2; n3 |]for item in items do printfn $"Has a value: {item.HasValue}" if item.HasValue then printfn $"Type: {item.GetType().Name}" printfn $"Value: {item.Value}" else printfn $"Null: {item = Nullable()}" printfn $"Default Value: {item.GetValueOrDefault()}" printfn ""// 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 SubEnd 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
If theHasValue property istrue
, the value of the currentNullable<T> object can be accessed with theValue property. Otherwise, attempting to access its value throws anInvalidOperationException exception.
Was this page helpful?
Was this page helpful?