深入了解C#
文章平均质量分 93
飞墨留白
Hello,gamer!
展开
-
C#迭代器原理详解
迭代器模式迭代器模式提供一个方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。在C#中,可以通过IEnumerable和IEnumerator来实现这个模式。首先,我按照这两个接口完成了迭代器模式的实现:迭代器模式案例在这个Example中,分别实现了这两个类public class DinerMenu : IEnumerablepublic class DinerMe...原创 2019-01-29 17:12:46 · 3410 阅读 · 0 评论 -
C/C++和C#中的不定参数
目录C#中的params首先,在C#中,我们一般是使用params关键字来处理不定参数的问题,对于params的用法这里不再赘述。我们先来写一小段测试代码来看看C#中params是如何运作的:我们使用ILSpy来进行反编译,得到它的IL代码:由上图我们可以看到,ParamsTest和ArrayTest的参数都是一个int32的数组,并没有任何区别,ParamsTest只比Array...原创 2018-12-12 21:28:11 · 1135 阅读 · 0 评论 -
Unity优化记录(3)——C#(如何解决使用enum和struct作为Dictionary的TKey带来的GC)
1、关于在Dictionary中使用Enum作为TKey会带来GC的问题。这个问题是在阅读《2018腾讯移动游戏技术评审标准与实践案例》中发现的,在原书第21页有如下测试代码和测试结果:...原创 2019-02-26 22:10:22 · 4991 阅读 · 1 评论 -
Unity优化记录(4)——C#(协程Coroutine的优化与设计、闭包的优化)
1、协程Coroutine的优化与设计对于Unity内的协程,在yield return 时不要每次都new一个,可以在之前创建一个变量做为代替。同时我在项目中创建了一个MYXZTimer,方便可以全局地使用协程,并且统一做优化,下文来说明一下设计思路:在开发过程中,往往需要滞后地来调用某个函数,例如网络同步,更新信息等,但是这些类又往往不是继承自Monobehavior的,所以这里通过创建一...原创 2019-02-27 00:02:29 · 831 阅读 · 0 评论