赞
踩
大致总结下C#中几个常见知识点的个人理解,以对基础已经有所了解为前提。不定期更新~!
- void RefOutTest()
- {
- int a;
- // refTest(ref a);//error: a需要先初始化
- a = 1;
- refTest(ref a);
- outTest(out a);
- Debug.Log("out - " + a);// out - 2
- }
- void RefTest(ref int a)
- {
- }
- void OutTest(out int a)
- {
- a = 2;
- }
- string str1 = "abc";
- string str2 = "abc";
- Debug.Log(object.ReferenceEquals(str1, str2)); //true
- Debug.Log(object.ReferenceEquals(str1, "abc")); //true!!
- void Start()
- {
- var enumerator = EnumerableTest().GetEnumerator();
- Debug.LogError(enumerator.Current);
- Debug.LogError(enumerator.MoveNext());
- Debug.LogError(enumerator.Current);
- //两个输出结果一致
- StartCoroutine(EnumerableTest().GetEnumerator());
- StartCoroutine(EnumeratorTest());
- }
- IEnumerable EnumerableTest()
- {
- Debug.Log(1);
- yield return new WaitForSeconds(.5f);
- Debug.Log(2);
- yield return new WaitForSeconds(.5f);
- Debug.Log(3);
- }
- IEnumerator EnumeratorTest()
- {
- var enumerator = EnumerableTest().GetEnumerator();
- while(enumerator.MoveNext())
- {
- yield return enumerator.Current;
- }
- }
委托实际上是包装了 执行操作的对象 和 对象要执行的方法 的包装器(类)。
事件本质上是对System.Delegate和委托的封装而已,根本上是通过调用System.Deleagte.Combine等方法对delegate操作的一个委托管理器。
匹夫细说C#:庖丁解牛聊委托,那些编译器藏的和U3D给的
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。