C#知识点、常见面试题

 相关源码

https://github.com/JackYan666/CSharpCode/blob/main/CSharpCode.cs

0.简要概括

1.For循环删除集合元素可能漏删:从后面往前删除

2.Foreach不能直接修改集合元素:用递归的思想,删除完了的集合重新遍历

3.闭包问题:for循环存在闭包,可以通过使用临时变量解决;Task存在闭包问题可以通过wait解决,可以通过使用临时变量解决(但是在Unity中是无序的);foreach不存在闭包问题;

4.string修改简要使用StringBuilder,直接+=会重新开辟一段内存地址,费性能

5.Equals和==的比较

        1.Equals是比较是否相同

        2.==是比较引用地址是否相同

        3.string 类型是个特例,因为他的内部对这两个都进行了重写。

重写后他比较的则是两个变量具有相同的值,重写后的 == 操作符内部调用的即是 equals 方法

1.

你可能感兴趣的:(Unity进阶,c#,windows,开发语言)