1. ホーム
  2. c#

[解決済み] out引数を明示的に破棄するには?

2022-09-28 19:31:09

質問

電話をかけているところです。

myResult = MakeMyCall(inputParams, out messages);

というのがありますが、実はメッセージはどうでもいいんです。 もしそれが入力パラメータであれば、私は気にせずNULLを渡します。 どうでもいい戻り値ならそのままにしてる。

out で同じようなことをする方法はありますか。それとも、無視する変数を宣言する必要がありますか。

どのように解決するのですか?

C# 7.0 からは、パラメータを無視するだけでなく、predeclaring out を回避することが可能です。

public void PrintCoordinates(Point p)
{
    p.GetCoordinates(out int x, out int y);
    WriteLine($"({x}, {y})");
}

public void PrintXCoordinate(Point p)
{
    p.GetCoordinates(out int x, out _); // I only care about x
    WriteLine($"{x}");
}

出典 https://blogs.msdn.microsoft.com/dotnet/2017/03/09/new-features-in-c-7-0/