C#の委任の実装方法は何ですか?
C#のデリゲートの実装方法は、次のようにいくつかの方法で実現できます。
- メソッド名を指定して、そのメソッド名をデリゲートのパラメータとしてデリゲートインスタンスに渡す方法を定義します。
public delegate void MyDelegate(string message);
public class MyClass
{
public static void PrintMessage(string message)
{
Console.WriteLine(message);
}
public static void Main()
{
MyDelegate myDelegate = PrintMessage;
myDelegate("Hello World");
}
}
- 使用匿名関数:デリゲートのパラメータ位置に直接匿名関数を定義します。
public delegate void MyDelegate(string message);
public class MyClass
{
public static void Main()
{
MyDelegate myDelegate = delegate (string message)
{
Console.WriteLine(message);
};
myDelegate("Hello World");
}
}
- Lambda式を使用する:Lambda式を使うと、匿名関数をより簡潔に定義することができます。
public delegate void MyDelegate(string message);
public class MyClass
{
public static void Main()
{
MyDelegate myDelegate = (message) =>
{
Console.WriteLine(message);
};
myDelegate("Hello World");
}
}
どの方法を使っても、デリゲートはメソッドを参照したり、実行時にメソッドを動的に置き換えたりすることができます。