感觉这两种传值方式都应该有特定的地方可以使用,可惜现在技术太菜。没办法把握到底哪里在使用,不知道对不对,目前我对第一种的理解是一种反射机制,能让两部分代码分离,第二种估计做不到第一种分离的作用。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
/// <summary> /// 今天看见有这种传委托的回调的方法,比较好奇,记录下来,未来应该有用。 /// 我不知道这种方式和上面一种方式有什么不同,不过先放在这吧。以后可能会遇到。 /// </summary> public class Test: MonoBehaviour { void Start() { System.Action method = System.Delegate.CreateDelegate (typeof(System.Action),this,"TestDelegate") as System.Action; AddMethod (method); } private void TestDelegate() { Debug.Log ("TestDelegate"); } private void AddMethod(System.Action method) { method (); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
/// <summary> /// 这个方法我是通过查看了上面的那个方法后,去MSDN上找到的方法,感觉这种方法传回调还蛮方便的。 /// 值得记录下来 /// </summary> public class Test : MonoBehaviour { void Start() { System.Action method = delegate() {TestDelegate ();}; AddMethod (method); } private void TestDelegate() { Debug.Log ("TestDelegate"); } private void AddMethod(System.Action method) { method (); } } |