Start Debugging
2023-05-09 更新日 2023-11-05 csharp Edit on GitHub

C# 12 - ラムダ式のパラメーターに既定値を指定

C# 12 では、メソッドやローカル関数と同じように、ラムダ式のパラメーターに既定値や params 配列を指定できます。

C# のバージョン 12 から、ラムダ式のパラメーターに既定値を指定できるようになりました。既定値の構文と制約は、メソッドやローカル関数と同じです。

例を見てみましょう。

var incrementBy = (int source, int increment = 1) => source + increment;

このラムダは、次のように使用できます。

Console.WriteLine(incrementBy(3)); 
Console.WriteLine(incrementBy(3, 2));

ラムダ式の params 配列

ラムダ式は、params 配列をパラメーターとして宣言することもできます。

var sum = (params int[] values) =>
{
    int sum = 0;
    foreach (var value in values) 
    {
        sum += value;
    }

    return sum;
};

そして他の関数と同じように利用できます。

var empty = sum();
Console.WriteLine(empty); // 0

var sequence = new[] { 1, 2, 3, 4, 5 };
var total = sum(sequence);

Console.WriteLine(total); // 15

エラー CS8652

The feature ‘lambda optional parameters’ is currently in Preview and unsupported. To use Preview features, use the ‘preview’ language version.

ラムダのオプションパラメーター機能を使うには、プロジェクトが .NET 8 および C# 12 以降をターゲットにする必要があります。C# 12 への切り替え方法がわからない場合は、こちらの記事をご覧ください: C# 12 への切り替え方法

Comments

Sign in with GitHub to comment. Reactions and replies thread back to the comments repo.

< 戻る