1. ホーム
  2. c#

[解決済み] 型(例:int? myVariable)の後にクエスチョンマークを付けるのは何のためですか?

2022-03-19 12:32:25

質問

一般的にクエスチョンマークは、条件文に使用されます。 x ? "yes" : "no" .

しかし、別の使い方を見たことがあるのですが、この使い方の解説が見つかりません。 ? 演算子などです。

public int? myProperty
{
   get;
   set;
}

解決方法は?

つまり、問題の値型は nullable型

Nullable型は、System.Nullable構造体のインスタンスです。A nullable型は、その型が持つ正しい値の範囲を表すことができます。 を基にした値型に、さらにヌル値を加えたものです。例えば Nullable<Int32> Nullable of Int32,"と発音されるものには、任意の値を割り当てることができます。 2147483648 から 2147483647 までの値、または NULL 値を割り当てることができます。 の値です。A Nullable<bool> には、true、false、またはfalseの値を割り当てることができる。 ヌル 数値型やブール型にnullを代入できるのは データベースやその他のデータを扱うときに特に便利です。 のような、値が割り当てられない可能性のある要素を含む型があります。例えば たとえば、データベースのブール値フィールドには、true または false、または未定義である。

class NullableExample
{
  static void Main()
  {
      int? num = null;

      // Is the HasValue property true?
      if (num.HasValue)
      {
          System.Console.WriteLine("num = " + num.Value);
      }
      else
      {
          System.Console.WriteLine("num = Null");
      }

      // y is set to zero
      int y = num.GetValueOrDefault();

      // num.Value throws an InvalidOperationException if num.HasValue is false
      try
      {
          y = num.Value;
      }
      catch (System.InvalidOperationException e)
      {
          System.Console.WriteLine(e.Message);
      }
  }
}