Open1

C# 拡張メソッド

しみゆーしみゆー

拡張メソッドとは

継承を使わずに、クラスに対してメソッドを追加する仕組み

  • 拡張メソッドにするには、staticクラスのstaticメソッドとする
  • 第1引数に、this 拡張するクラス名を指定する
  • 慣例として、クラス名は拡張するクラス名Extensionsとする
  • 拡張メソッドと同名のメソッドが既に存在する場合、拡張メソッドは無視される(元のクラスを上書きできない)
    internal static class StringExtensions
    {
        public static string Repeat(this string str, int count)
        {
            var builder = new StringBuilder();
            for (var i = 0; i < count; i++)
            {
                builder.Append(str);
            }
            return builder.ToString();
        }
    }
var str = "test";
Console.WriteLine(str.Repeat(3)); // testtesttest