【C#】デリゲート(delegate) 使用例 第二弾
using UnityEngine; using System.Collections; namespace Test { delegate void SomeDelegate(int a); class DelegateTest { public void Main() { SomeDelegate a = new SomeDelegate(A); a(256); } static void A(int n) { Debug.Log("delegate / " + n); } } public class TestClass : MonoBehaviour { void Start() { DelegateTest test1 = new DelegateTest (); test1.Main (); } } }
以下と同じ
using UnityEngine; using System.Collections; namespace Test { delegate void SomeDelegate(int a); class DelegateTest { public void Main() { SomeDelegate a = A; a(256); } static void A(int n) { Debug.Log("delegate / " + n); } } public class TestClass : MonoBehaviour { void Start() { DelegateTest test1 = new DelegateTest (); test1.Main (); } } }
delegate ShowMessageインスタンスに複数の関数を入れることができる。
using UnityEngine; using System.Collections; namespace Test { delegate void ShowMessage(); class DelegateTest { public void Main() { ShowMessage a = A; a += B; a += C; a(); } static void A() { Debug.Log("A\n"); } static void B() { Debug.Log("B\n"); } static void C() { Debug.Log("C\n"); } } public class TestClass : MonoBehaviour { void Start() { DelegateTest test1 = new DelegateTest (); test1.Main (); } } }