
Unity3d+C#
文章平均质量分 67
四夕立羽
这个作者很懒,什么都没留下…
展开
-
C#:单例,闭包,委托与事件,线程,Parallel,Params,扩展方法,接口与抽象类
在对泛型的约束中,最常使用的关键字有where 和 new。其中where关键字是约束所使用的泛型,该泛型必须是where后面的类,或者继承自该类。new()说明所使用的泛型,必须具有无参构造函数,这是为了能够正确的初始化对象1.泛型约束class Singleton where T : class,new()2.静态对象没创建,使用new T()3.在构造函数中可以加入虚方法在上述示例中,我们使用泛型类型参数 T 来表示子类。原创 2024-01-14 23:28:54 · 1252 阅读 · 0 评论 -
unity3d:asset store上C#代码热重载插件,不需要重运行,重新加载更新后函数
这种手动重新编译应该在进行不支持的编辑时使用,比如添加一个新类。Hot Reload是一个C#编译器扩展,它只编译发生变化的特定方法(非常快,只需要几毫秒)。请注意,在进行了不支持的编辑后,通常仍有可能继续编辑不相关的文件和函数。在执行手动重新编译之前,不支持的编辑在编辑器中是不可见的。热重新加载建议默认禁用“自动刷新”编辑器设置,因为它会在任何文件更改时触发完全重新编译,这是热重新加载允许您避免的。●方法1:通过导航到Unity菜单栏中的“窗口”打开热重装窗口,然后选择“热重装”。原创 2023-04-01 21:54:32 · 4192 阅读 · 1 评论 -
C#:数据结构queue队列源码:循环使用数组头标,尾标,防止不停扩容数组
https://referencesource.microsoft.com/#mscorlib/system/collections/queue.cs概述初始化:默认32个,每次2倍扩。所以在初始化时,能预设大小,防止频繁扩容public Queue(): this(32, (float)2.0)入队扩容:内部是个数组,发现size不够,扩容。当头索引在尾索引前,复制size大小到新newarray里;当尾索引在头前,先复制头到数组size-1标,再复制数组0标到尾private vo原创 2022-03-25 20:00:00 · 1130 阅读 · 0 评论 -
C#:stack栈源码,数组栈,链栈
转https://www.cnblogs.com/forever-ys/p/15322022.htmlhttps://referencesource.microsoft.com/#mscorlib/system/collections/stack.cs概述:数组栈:Push不够时进行扩容Array.Copy,每次2倍每次Push放在数组的尾部每次Pop,数组尾部取出,取出后最后项目 _array[_size] = null(释放内存),然后size-1C#源码采用数组栈链栈:Top对象保转载 2022-03-25 09:52:47 · 332 阅读 · 0 评论 -
C#数据结构:两栈实现队列,两队列实现栈
两个栈实现队列:栈实现先进先出栈1负责队尾,栈2负责队头每次入队,栈2无元素且栈1无元素,入栈2;否则入栈1每次出队,栈2有元素,出栈2顶;否则把全部栈1入栈2,再出栈2顶bool Pop(ref int value) { if (m_stack2.Count > 0) { value = m_stack2.Pop(); return true; } while (m原创 2022-03-16 20:45:00 · 1061 阅读 · 0 评论 -
Unity3d+c#:Dictionary多个key查找一个value,重载Equals
Equals与GetHashCodeSystem.Object声明方法Equals和GetHashCode以及其他成员。 (注意:这个案例在C#中很重要)。您创建的类型会自动继承这些方法。Equals的任务是将一个对象与另一个对象进行比较。引用类型的默认实现是比较引用。如果你想改变这种行为,你将不得不重写这个方法。GetHashCode计算对象的哈希码并用于哈希表。例如,类型Dictionary<TKey,TValue>和HashSet利用它。 请参阅Hashtable and Dicti原创 2022-01-10 20:50:12 · 3109 阅读 · 0 评论 -
Unity3d+C#:Dictionary源码与使用注意(转)
转https://www.cnblogs.com/xiaomowang/p/12405639.htmlEntry结构体entry这样一个结构体,它的定义如下面代码所示,这是Dictionary中存放数据的最小单位,调用Add(Key,Value)方法添加的元素都会被封装在这样的一个结构体中private struct Entry { public int hashCode; // Lower 31 bits of hash code, -1 if unus转载 2022-01-08 10:52:21 · 733 阅读 · 0 评论 -
C#:List源码,使用注意,优化
List内部是用数组实现的,而不是链表,并且当没有给予指定容量时,初始的容量为0Add// Adds the given object to the end of this list. The size of the list is// increased by one. If required, the capacity of the list is doubled// before adding the new element.//public void Add(T item) {原创 2022-01-07 22:55:22 · 830 阅读 · 0 评论 -
Unity3d:c#,Mono,IL2CPP,托管代码,AOT,JIT
Mono跨平台ILIntermediate Language,中间语言,面向对象的汇编语言工作流通过C#编译器mcs,将C#编译为IL(中间语言,byte code)通过Mono运行时中的编译器将IL编译成对应平台的原生码IL三种转译方式即时编译(Just in time,JIT):程序运行过程中,将CIL的byte code转译为目标平台的原生码。提前编译(Ahead of time,AOT):程序运行之前,将.exe或.dll文件中的CIL的byte code部分转译为目标平台的原生码原创 2022-01-05 23:08:03 · 2887 阅读 · 1 评论