很多游戏开发者都是由于Unity而“被迫”使用C#的。但用过一段时间,就会由衷赞叹:真香。
如果有些同学没感觉到很香,有可能是没有仔细和其它语言比较。
C#良好兼容了值类型/引用类型,在发展中逐步解决了其他高级语言没解决好的问题。
纵观主流语言,C语言在语法上是以值类型为基础,借助指针实现引用类型;而Python/Lua等语言,是以引用类型为基础。
论性能和细节控制力,C语言的设计上限更高;但是论简易程度,Python更为统一、易用。这一基本矛盾在之前的语言里都没有解决好。
而C#很好的总结了前人的经验,在基础语法上就区分了值类型和引用类型。对初次接触编程的同学来说这一点容易造成学习障碍,但是只要掌握了它,就会给实际工作带来极大便利。
反观历史,C#也曾经因为 值类型/引用类型 保守诟病,“拆箱”和“装箱”一直是个招黑的设计。但后来我们看到,随着泛型的成熟和普及,随着泛型容器代替通用容器,装箱和拆箱的问题已经在很大程度上解决了。
还有对异步的支持等等,C#的设计最初带来了一些问题,但是最终还是交上了一份满意的答卷。
充分利用栈空间,非常高效