工作总结-C#抽象类,接口,以及UnityAction

来源:互联网 发布:linux系统cd命令 编辑:程序博客网 时间:2024/06/10 19:28

C#的抽象类及接口设计蛮奇怪。先说抽象类,抽象类允许抽象方法,也允许不抽象的方法。

额外一提,当你使用子类去继承基类完成方法重写时,千万要记得用override来修饰你的方法声明,否则c#不会认为你在重写基类方法,至少目前看来是这样。

接口允许属性的存在但不允许字段的存在,字段及属性的区别至今也没有闹清楚,C#的基础还是太弱了。


另一方面,由于要设计一个运行于Unity的Http请求解析类(使用WWW类),所以要使用协程,在使用了协程以后由于返回类型被限制为IEnumerator,因此无法通过方法的返回值来返回响应参数,这时就用到了UnityAction来设计回调事件。

public IEnumerator getRespones(UnityAction<string> callBack){    // DoSomeThings&get Respones Object call res    callBack(res.text);} public void Start(){    // 不要单纯的传入方法,应该构建一个UnityAction对象传入    StartCoroutine(UnityAction<string> printRes(string res));}public void printRes(string res){    Debug.Log(res);}

关于额外的一些设计有关的东西,如果想要保持一个全局唯一的MonoBehavior,同时不用通过Find方法来get到这个MonoBehavior,目前的一个解决思路是首先确保全局只挂载了一个脚本,然后为这个MonoBehavior设置成单例模式。

private static SingleMonoBehavior me;public static SingleMonoBehavior getInstance(){    if(me == null){        // 没想好要怎么做,新建一个空物体并挂载该脚本么?总觉得不好,只能先打印了        Debug.Log("于是这里是空的");   }   return me;}public void Start(){    me = this;}
0 0
原创粉丝点击