C#のExtension Method

C#ではExtension Methodという便利な仕組みがあるそうです。

使い方

using System;

public static class Extension
{
  public enum Fruit { apple, orange }

  public static string function(this Fruit fruit)
  {
    return fruit == Fruit.apple ? "apple" : "orange";
  }
}

public static class Example
{
  static void Main()
  {
    string fruit = Extension.function(Extension.Fruit.apple);
    Console.WriteLine("fruit: " + fruit);
  }
}

実行結果

fruit: apple

テキトウ過ぎるexampleですが、thisキーワードを使ってこんな感じで書けるみたいです。enum以外にもclass/struct/primitive valueなどにも使えるそうなので、便利そうな気がします。

リンク

How to: Implement and Call a Custom Extension Method (C# Programming Guide) | Microsoft Docs
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/how-to-implement-and-call-a-custom-extension-method

コメントを残す

メールアドレスが公開されることはありません。