rksoftware

Visual Studio とか C# とかが好きです

C# 2.0 以降の新機能の確認 - C# 3.0 - 拡張メソッド

C# 2.0 以降の新機能を一つづつ確認していきます。
以前に一度行ったのですが、公式ドキュメント再編でリンク切れしているところを見つけてしまったので。今ならもっと簡潔なサンプルが欠けるところもあるだろうし、せっかくなので今もう一度確認して行きます。

拡張メソッド

 https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/extension-methods
 既存の型に外からメソッドを追加できる(実際に追加されるわけではなく、追加されたかのようにコードを書ける)。
 次の例では、string クラスに HasValue メソッドが追加されたかのようにコードが書けている。

class Program
{
    static void Main(string[] args)
    {
        string s = "text";
        Console.WriteLine(s.HasValue());    // True
        s = null;
        Console.WriteLine(s.HasValue());    // False
    }
}

static class StringExtensions
{
    internal static bool HasValue(this string value)
    {
        return !string.IsNullOrEmpty(value);
    }
}