プログラムを書こう!

実務や自作アプリ開発で習得した役に立つソフトウェア技術情報を発信するブログ

C#で拡張メソッドを使用する

この記事は2019年12月18日に投稿しました。

f:id:paveway:20190914064630j:plain

目次

  1. はじめに
  2. C#で拡張メソッドを使用する
  3. おわりに

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"が含まれるメソッドを見つけました。
どんな機能か調べてみると、拡張メソッドなる機能でした。
swiftextensionと似ていますが、それよりは機能が限定されている感じです。

紹介している一部の記事のコードはGitlabで公開しています。
興味のある方は覗いてみてください。

目次へ


私が勤務しているニューラルでは、主に組み込み系ソフトの開発を行っております。
弊社製品のハイブリッドOS Bi-OSは高い技術力を評価されており、特に制御系や通信系を得意としています。
私自身はiOSモバイルアプリウィンドウズアプリを得意としております。
ソフトウェア開発に関して相談などございましたら、お気軽にご連絡ください。

また一緒に働きたい技術者の方も随時募集中です。
興味がありましたらご連絡ください。

EMAIL : info-nr@newral.co.jp / m-futamata@newral.co.jp
TEL : 042-523-3663
FAX : 042-540-1688

目次へ