摘要: 1. 静态类到扩展方法: 许多方法可能都适合转为扩展方法,只要具有以下特征: 1)你想为一个类型添加一些成员; 2)你不需要为类型的实例添加更多的数据; 3)你不能改变类型本身,因为是别人的代码 2.声明扩展方法 并不是任何方法都能作为扩展方法使用——他必须具有以下特征: 1)他必须在一个非嵌套的, 阅读全文
posted @ 2018-10-17 11:40 mc宇少 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 1.当这个数是2的多少次幂: 求(2^m)^n = 2^(m*n) = 1<<m*n; 2.快速幂(要考虑底数a,和m的正负) int quick_mod(int a,int m){ int b=1; while(m>0) { if(m&1) { b=b*a; } m>>=1; a=a*a; } r 阅读全文
posted @ 2018-10-14 23:02 mc宇少 阅读(897) 评论(0) 推荐(0) 编辑
摘要: Message相关有3条指令: 要接收消息的GameObject.SendMessage ("函数名",参数,SendMessageOptions) //自身和父Object的Script 要接收消息的GameObject.BroadcastMessage ("函数名",参数,SendMessage 阅读全文
posted @ 2018-10-12 22:05 mc宇少 阅读(869) 评论(0) 推荐(0) 编辑
摘要: 从任何类型”转换成他本身“被认为好于“转换成一个不同的类型”,这个规则称为“更好的转换”规则。 阅读全文
posted @ 2018-10-12 11:27 mc宇少 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 1.Lambda形式 1). Lambda表达式最冗长的形式: (显式类型的参数列表)=>{语句} 2). 大多数时候,都可以用一个表达式来表示主体,该表达式的值是Lambda的结果,在这些情况下,可以指定那个表达式,不使用大括号,不使用return语句,也不添加分号。 (显式类型的参数列表)=> 阅读全文
posted @ 2018-10-10 11:50 mc宇少 阅读(1726) 评论(0) 推荐(0) 编辑
摘要: C++编译阶段,没办法知道一个基类的指针或引用所指对象的类型,所以没办法通过这个指针判断调用的虚函数到底是谁的,所以只能通过查找虚函数表来找到函数的入口地址。 一个类,如果有虚函数,那么编译器在编译这个类的时候就会为它添加一个虚函数表,以及指向这个虚函数表的指针。继承这个基类的之类,也会新建一个虚函 阅读全文
posted @ 2018-10-09 22:42 mc宇少 阅读(413) 评论(0) 推荐(0) 编辑
摘要: 1.调用transform.SetAsLastSibling();将该UI的显示层级调到最上面。 调用transform.SetAsFirstSibling();将该UI的显示层级调到最下面。 在Hierarchy同一层级的越往上越先渲染 2. 如下图所示,在深入一下渲染绘制的顺序 UIMain 和 阅读全文
posted @ 2018-10-06 15:59 mc宇少 阅读(5016) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2018-10-04 15:13 mc宇少 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 1.方法组:所有的名称相同的重载方法合在一起就成为一个方法组。 2.协变性和逆变性: 协变性指的是——泛型类型参数可以从一个派生类隐式转化为基类。 逆变性指的是——泛型类型参数可以从一个基类隐式转化为派生类 。 注意事项: 1. 只有接口和委托支持协变和逆变(如 Fun<out TResult>,A 阅读全文
posted @ 2018-09-24 23:28 mc宇少 阅读(496) 评论(0) 推荐(0) 编辑
摘要: 1.同c++模板的对比: c++模板有点像是发展到极致的宏。他们非常强大,但代价就是代码膨胀和不易理解。 在c++中使用一个模板时,会为那一套特定的模板实参编译代码,好在模板实参本来就在源代码中一样。这意味着对约束的需求就不像对编译器需求那么多,因为编译器在为这一套特定的模板实参编译代码时,会检查你 阅读全文
posted @ 2018-09-20 11:52 mc宇少 阅读(606) 评论(0) 推荐(0) 编辑