unity总结九
来源:互联网 发布:超级直播软件apk 编辑:程序博客网 时间:2024/06/05 00:32
c#中的值类型和引用类型:
这里可以看出类属于引用类型,数据是放在堆上的,struct是值类型,里面的数据放在栈上
摘自:http://www.tracefact.net/CSharp-Programming/Delegates-and-Events-in-CSharp.aspx
深入讲解委托和事件:
比如一个函数输出早上好,但是当有外国人时,输出good morning,那么要在函数中参数传入language,用swith判断是哪个语言,输出不同的早上好函数。但是这在设计模式上不容易扩展。我们把language参数改成一个委托,用委托来调用到底使用哪个函数
在客户端函数参数调用不同的方法,在类里面写函数的时候,参数是一个委托,实参传的是函数的地址,形参用委托接收,通过委托自动调用想用的方法,可以理解为,通过委托机制,实现了函数上的多态。通过语义可以理解为,我想调用不同的函数可以通过委托机制委托它帮我自动调用
委托的好处是:避免在程序中大量使用If-Else(Switch)语句,同时使得程序具有更好的可扩展性
当然,委托也可以一次调用多个函数,前提将多个函数绑定上:
GreetingDelegate delegate1; delegate1 = EnglishGreeting; // 先给委托类型的变量赋值 delegate1 += ChineseGreeting; // 给此委托变量再绑定一个方法 // 将先后调用 EnglishGreeting 与 ChineseGreeting 方法 GreetPeople("Jimmy Zhang", delegate1); 输出为:Morning, Jimmy Zhang早上好, Jimmy Zhang委托的缺点:
在类中定义委托前面要加上public这样才能在客户端通过+=来添加函数,但是这样破坏了对象的封装性
事件(event关键字):是委托的改进版,不管是不是声明为public,它总是被声明为private,委托在客户端可以直接调用,事件不行,只能在事件内部类中或者某些操作触发。
笔试题:in ,out, ref , paras的作用和区别
作用
笔试题:
Base baseTemp = new Base();
baseTemp = new Child();
第一行会调用Base类的构造函数,但是第二行又开辟了子类对象,那么请问第二行的时候会调用Base类的析构函数吗?
自己当时想的是如果此时不析构那么baseTemp指针被覆盖了就没法析构了所以第二行的时候会调用Base类的析构函数
答案:不会调用析构函数这两个类统一在main函数完后析构,自己的问题是,那么指向Base类的指针baseTemp被覆盖了,如何析构Base呢?
原因是没有被覆盖,而是指向自己的子类了,c++中先调用父类的构造,子类的构造,在调用子类析构,再调用父类析构,在main函数return前析构子类,然后看该类是不是多态,是的话还得继续析构父类。
笔试题
Unity3D 关于lightmap,mipMap和LOD是啥?
1、Resources.Load
对应的目录:Assets/Resources
2、WWW加载AssetBundle
打包:- unity总结九
- 【Unity】Unity优化总结
- Unity总结
- Unity之EditorGUILayout- Button-九
- 【Unity优化】Unity优化总结
- 九、十月份总结
- TestComplete总结九
- JAVA基础课总结九
- Cocolumberjack 学习总结 (九)
- JAVA学习总结九
- 背包九讲总结
- coredata学习总结(九)
- 九.接口总结
- 九月半集训总结
- 停课总结(九)
- Unity热更新专题(九)Unity热更新实例
- Unity热更新专题(九)Unity热更新实例
- Unity学习(九)动画系统Mecanimi
- servlet的自动加载和生命周期
- 1-4·Linux中搜索命令有哪些?
- Codeforces Round #442 (Div. 2) 877 D. Olya and Energy Drinks BFS
- npm获取配置有6种方式,优先级由高到底。
- c# 控制台程序屏蔽窗口
- unity总结九
- Hibernate工具类Utils
- 百度开源项目推荐
- Linux命令行大全总结(下)
- 编译---链接过程
- 安卓组件---Notification 的使用
- mulesoft 入门与实践-1
- keras学习笔记(4)—损失函数
- angularjs