C# の静的メソッドの仮パラメータでの「this」キーワードの使用 質問する

C# の静的メソッドの仮パラメータでの「this」キーワードの使用 質問する

次のような C# コードのインスタンスをいくつか見かけました。

public static int Foo(this MyClass arg)

thisこの場合のキーワードの意味についての説明を見つけることができませんでした。何かお分かりですか?

ベストアンサー1

これは拡張メソッドです。説明

拡張メソッドを使用すると、開発者は、サブクラス化したり元の型を再コンパイルしたりすることなく、既存の CLR 型のパブリック コントラクトに新しいメソッドを追加できます。拡張メソッドは、今日の動的言語で人気の「ダック タイピング」サポートの柔軟性と、厳密に型指定された言語のパフォーマンスおよびコンパイル時の検証を融合するのに役立ちます。

拡張メソッドにより、さまざまな便利なシナリオが可能になり、非常に強力な LINQ クエリ フレームワークを実現できるようになります。

それはあなたが電話をかけることができることを意味します

MyClass myClass = new MyClass();
int i = myClass.Foo();

それよりも

MyClass myClass = new MyClass();
int i = Foo(myClass);

これにより、流暢なインターフェース下記の通りです。

おすすめ記事