多分わかりやすいC#の拡張メソッド

★★★ Live配信告知 ★★★
◆◇世界一わかりみの深いクラウドネイティブ on Azure◆◇
6/22(金) 12:00~ 第14回:世界一わかりみの深いAzure Bot Service 〜AIによるFAQチャットボット構築〜
今回はAzure Cognitive Service for LanguageというAzureのAIサービスを用いて、FAQチャットボットの構築方法についてわかりみ深く説明します。
◆◇PS Live配信◆◇
5/20(金) 17:00~ アウトプットはイイぞ 〜人生折り返し地点からの情報発信で学びが楽しくなった話〜
2020年にMicrosoft MVP for Azure を受賞した武井が人生を変えたアウトプットについてそのノウハウをお伝えします。

こんにちは、サイオステクノロジー技術部 武井です。今回はC#の拡張メソッドについて書きたいと思います。これも何番煎じくらいかもうわかりません。私の備忘録も兼ねています。

拡張メソッド

自分が作ったクラスにメソッドを追加するのは簡単ですが、他人が作ったクラスにメソッドを追加したいと思ったことはないでしょうか?通常であれば、そのクラスの作者にお願いしないと、メソッドの拡張は実現できませんが、C#は拡張メソッドという機能を使うと、簡単に実現できます。しかも、そのメソッドはインスタンスメソッドとして使うことが出来ます。

構文は以下になります。

用途があるのかわかりませんが、string型の文字列の末尾に「※ただしイケメンに限る」を追加するという拡張メソッドをstringクラスに追加してみたいと思います。

結果は以下のとおりです。

インターフェースにも拡張メソッド

全く同様の手順でインターフェースにも拡張メソッドを追加できます。こちらのほうがよく使われていますね。

ここでIEnumerableインターフェースを拡張する例を考えてみます。IEnumerable<string>の場合、リストすべての文字列の末尾に「※ただしイケメンに限る」を追加してみます。

結果は以下のようになります。

絶望感たっぷりですね。

まとめ

拡張メソッド便利ですね。例が適切でなかったかもしれません。便利なのですが、あまり使いすぎると、どのクラスやインターフェースにどのメソッドが拡張されているのかわからなくなるような気がします。では、素敵な拡張メソッドライフを。No Extension Method、No Life!!





ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!


ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

1人がこの投稿は役に立ったと言っています。

Be the first to comment

Leave a Reply

Your email address will not be published.


*