1. ホーム
  2. c#

[解決済み] C#の関数に複数のオプションのパラメータを渡す

2023-08-12 13:41:52

質問

C#の関数で、任意の数のパラメータを受け取るように設定する方法はありますか?たとえば、次のすべてが動作するように関数をセットアップすることができます - 。

x = AddUp(2, 3)

x = AddUp(5, 7, 8, 2)

x = AddUp(43, 545, 23, 656, 23, 64, 234, 44)

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

を使用します。 パラメータ配列 と共に params 修飾子を使っています。

public static int AddUp(params int[] values)
{
    int sum = 0;
    foreach (int value in values)
    {
        sum += value;
    }
    return sum;
}

があることを確認したい場合は、少なくとも 一つ があることを確認したい場合は、別途それを指定します。

public static int AddUp(int firstValue, params int[] values)

(セット sumfirstValue に変更し、実装を開始します)。

通常の方法で配列の参照が NULL であるかどうかもチェックする必要があることに注意してください。メソッド内では、パラメータは完全に普通の配列です。パラメータ配列の修飾子が意味を持つのは を呼び出すときだけです。 を呼び出すときだけです。基本的にはコンパイラが回す。

int x = AddUp(4, 5, 6);

のようなものに。

int[] tmp = new int[] { 4, 5, 6 };
int x = AddUp(tmp);

あなたは できます は完全に通常の配列で呼び出すことができます。したがって、後者の構文はソースコードでも有効です。