【Unity】Delegates 勉強した
C# delegate の使い方をメモします
デリゲート
class Foo { delegate void MyDelegate(int num); // delegateの要求形式を記述 MyDelegate myDelegate; public Foo() { myDelegate = PrintNum; myDelegate(10); myDelegate = PrintDoubleNum; myDelegate(10); } void PrintNum(int num) { Console.WriteLine(num); } void PrintDoubleNum(int num) { Console.WriteLine(num*2); } }
// new Foo() 実行結果 10 20
マルチキャストデリゲート
class Foo { delegate void MyDelegate(int num); MyDelegate myDelegate; public Foo() { myDelegate += PrintNum; myDelegate += PrintDoubleNum; myDelegate(10); } void PrintNum(int num) { Console.WriteLine(num); } void PrintDoubleNum(int num) { Console.WriteLine(num*2); } }
// new Foo() 実行結果 10 20
myDelegate = PrintNum; の代わりに myDelegate += PrintDoubleNum;記述すると
複数のメソッドを同時に実行可能です