拡張メソッドとは? わかりやすく解説

拡張メソッド

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/06/12 02:32 UTC 版)

統合言語クエリ」の記事における「拡張メソッド」の解説

同様のデータ構造に対して後から操作追加するために取り入れられた。例えば、LINQ to Object場合はIEnumerableインターフェイスの拡張メソッドとして標準クエリ演算子を含むメソッド群が追加された。

※この「拡張メソッド」の解説は、「統合言語クエリ」の解説の一部です。
「拡張メソッド」を含む「統合言語クエリ」の記事については、「統合言語クエリ」の概要を参照ください。


拡張メソッド

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/06/03 23:38 UTC 版)

C Sharp」の記事における「拡張メソッド」の解説

拡張メソッド (extension method) が導入された。既存クラス継承して新たなクラス定義することなく新たなインスタンスメソッドを疑似的追加定義することができる。具体的には、入れ子になっていない、非ジェネリックの静的クラス内に、this 修飾子をつけた、拡張メソッドを追加する対象の型の引数最初に持つメソッドをまず定義する。これによって、通常の静的メソッドとしての呼び出しの他に、指定した型のインスタンスメソッドとしての呼び出しを行うことができるメソッド作ることができる。以下に例を挙げる: public static class StringUtil{ public static string Repeat(this string str, int count) { var array = new string[count]; for (var i = 0; i < count; ++i) array[i] = str; return string.Concat(array); }} この例は、文字列string 型のインスタンス)を指定した回数繰り返し連結したものを返すメソッド Repeat を、既存string 型に追加している。このメソッドは、以下のように呼び出すことができる: // 静的メソッドとしての呼び出しStringUtil.Repeat("foo", 4);// 拡張メソッドとしての呼び出し"foo".Repeat(4);// (どちらの例も "foofoofoofoo" を返す) また、列挙型インターフェイスなど本来メソッド実装持ち得ない型に、見かけ上インスタンスメソッドを追加することも可能である。以下に例を挙げる: public enum Way{ None, Left, Right, Up, Down}public static class EnumUtil{ public static Way Reverse(this Way src) { switch (src) { case Way.Left: return Way.Right; case Way.Right: return Way.Left; case Way.Up: return Way.Down; case Way.Down: return Way.Up; default: return Way.None; } }} このメソッドは以下のように呼び出すことができる: Way l = Way.Left;Way r = l.Reverse(); // Way.Right 拡張メソッドは糖衣構文一種であり、カプセル化原則違反するものではないが、必要な場合限り注意して実装することがガイドラインとして推奨されている。

※この「拡張メソッド」の解説は、「C Sharp」の解説の一部です。
「拡張メソッド」を含む「C Sharp」の記事については、「C Sharp」の概要を参照ください。

ウィキペディア小見出し辞書の「拡張メソッド」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「拡張メソッド」の関連用語

拡張メソッドのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



拡張メソッドのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaの統合言語クエリ (改訂履歴)、C Sharp (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS