この記事は2019年12月18日に投稿しました。
目次
リンク
1. はじめに
こんにちは、iOSのエディタアプリPWEditorの開発者の二俣です。
今回は業務で使用しているC#で拡張メソッドを使用する方法についてです。
2. C#で拡張メソッドを使用する
C#で拡張メソッドを使用するには、以下のような手順で行います。
- staticなクラスに拡張メソッドを定義します。
クラス名は任意です。 - 拡張メソッド自体もstaticメソッドで定義します。
メソッド名も任意です。 - 拡張メソッドは通常のメソッドと同じように定義します。
ただし第一引数を"this 型 引数名"とします。
この第一引数の"型"のインスタンスオブジェクトで、拡張メソッドが使用できるようになります。
実装例
using System; using System.Collections.Generic; namespace CSharpExtensionMethod { // 拡張メソッドを定義します。 public static class ListExtension { /** * @brief List<string>内の文字列を結合して返却します。 * * @return 結合された文字列 */ public static string JoinItem(this List<string> list) { var result = string.Empty; foreach (var item in list) { result += item; } return result; } } class Program { static void Main(string[] args) { var list = new List<string>() { "Hello ", "world", "!!", }; // List<string>型の拡張メソッドを呼び出します。 Console.WriteLine(list.JoinItem()); Console.ReadKey(); } } }
実行結果
Hello world!!
3. おわりに
別件で調べていたときに、第一引数に"this"が含まれるメソッドを見つけました。
どんな機能か調べてみると、拡張メソッドなる機能でした。
swiftのextensionと似ていますが、それよりは機能が限定されている感じです。
リンク
紹介している一部の記事のコードはGitlabで公開しています。
興味のある方は覗いてみてください。
私が勤務しているニューラルでは、主に組み込み系ソフトの開発を行っております。
弊社製品のハイブリッドOS Bi-OSは高い技術力を評価されており、特に制御系や通信系を得意としています。
私自身はiOSモバイルアプリやウィンドウズアプリを得意としております。
ソフトウェア開発に関して相談などございましたら、お気軽にご連絡ください。
また一緒に働きたい技術者の方も随時募集中です。
興味がありましたらご連絡ください。
EMAIL : info-nr@newral.co.jp / m-futamata@newral.co.jp
TEL : 042-523-3663
FAX : 042-540-1688