ホームページ >バックエンド開発 >C++ >C# の Lambda 演算子はデリゲートの作成と式本体のメンバーをどのように簡素化できるでしょうか?

C# の Lambda 演算子はデリゲートの作成と式本体のメンバーをどのように簡素化できるでしょうか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-11 19:56:42686ブラウズ

How Can C#'s Lambda Operator Simplify Delegate Creation and Expression-Bodied Members?

C# の Lambda 演算子についての深い理解

C# の Lambda 演算子 ("=>") は、匿名のデリゲートと式本体の作成を簡素化する強力な構文糖です。

ラムダ式

ラムダ式は、デリゲートを明示的に宣言することなく、匿名メソッドに代わるよりクリーンな代替手段を提供します。これらは通常、Func<T, TResult>Action<T> などのデリゲート型の Lambda パラメーターとして使用されます。

たとえば、人の名前を返すデリゲートを作成します。

従来のコミッション作成方法:

<code class="language-csharp">Func<Person, string> nameProjection = delegate (Person p) { return p.Name; };</code>

Lambda 構文を使用して簡略化:

<code class="language-csharp">Func<Person, string> nameProjection = p => p.Name;</code>

式本体メンバー

C# 6 以降、Lambda 構文はプロパティとメソッドの式本体メンバーをサポートするように拡張されました。これにより、従来のコード ブロックを使用せずに、簡略化された式を使用してプロパティまたはメソッドの実装を定義できます。

たとえば、IsValid 属性を定義して、人の名前が空でなく、ID が -1 でないかどうかを確認します。

<code class="language-csharp">public int IsValid => name != null && id != -1;</code>

同様に、GetHashCode メソッドは Lambda 構文を使用して実装できます。

<code class="language-csharp">public int GetHashCode() => id.GetHashCode();</code>

その他の学習リソース

ディープラーニング:

  • 匿名メソッドとラムダ式の違いは何ですか?
  • ラムダ式とは何ですか?
  • C# でラムダ式を使用する必要があるのはなぜですか?

以上がC# の Lambda 演算子はデリゲートの作成と式本体のメンバーをどのように簡素化できるでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。