英語で読む

次の方法で共有


Nullable<T>.HasValue プロパティ

定義

現在の Nullable<T> オブジェクトに、基になる型の有効値があるかどうかを示す値を取得します。

C#
public bool HasValue { get; }

プロパティ値

現在の Nullable<T> オブジェクトに値がある場合は true。現在の Nullable<T> オブジェクトに値がない場合は false

次の例では、 HasValue (Nullable(Of Integer)Visual Basic の場合) オブジェクトの Nullable<int> プロパティを使用して、オブジェクトの Value プロパティまたはそのGetValueOrDefaultプロパティを表示する必要があるかどうかを判断します。

C#
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

注釈

プロパティが の HasValue 場合、 trueプロパティを使用して現在 Nullable<T> のオブジェクトの値に Value アクセスできます。 それ以外の場合、その値にアクセスしようとすると例外が InvalidOperationException スローされます。

適用対象

製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0