C# の out 変数

C# の out 変数 (out variables) について説明します。

C# 6.0 までは、out パラメータ修飾子 (out parameter modifier) がついた引数にパラメータを渡すときには、変数を事前に宣言する必要がありました。

例えば次の例では、out パラメータをもつ GetEmployee メソッドに変数を渡す前に string 型の n と t、int 型の a を宣言しています。

using System;

class Program
{
  static void Main(string[] args)
  {
    string n, t;
    int a;
    GetEmployee(out n, out a, out t);
    Console.WriteLine($"RESULT: {n}, {a}, {t}");
  }

  public static void GetEmployee(
      out string name,
      out int age,
      out string title)
  {
    name = "Hanako Yamada";
    age = 30;
    title = "Manager";
  }
}

しかし、C# 7.0 では、上記のように事前に宣言する必要はなくなりました。

out パラメータに変数を渡すと同時に、変数を宣言することが可能になりました。

    // string n, t;
    // int a;
    GetEmployee(out string n, out int a, out string t);

また、もし受け取る値が不要の場合は、_ (アンダースコア) を使うことができます。

次の例では、呼び出し側では三つ目の引数が不要として、_ を渡しています。

    GetEmployee(out string n, out int a, out _);

これによって、不要な変数を宣言すること自体、必要がなくなりました。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 C# 入門