【读书笔记】编写高质量代码改善C# 建议21-31

21、选择正确的集合

22、确保集合的线程安全

Unity写服务器才需要用到多线程,暂时没研究过

23、避免将List<T>作为自定义集合类的基类

如果想让类拥有List的方法,不应该直接继承List<T> ,而是应该实现IEnumerable<T> ICollection<T>

也就是所说的面向抽象编程

24、迭代器应该是只读的

写迭代器,不要为迭代器设置可写属性,可能会对其他调用此迭代器的对象产生干扰

25、谨慎集合属性的可写操作

没看懂什么意思

26、使用匿名类型存储LINQ查询结果

List<Person> lists = new List<Person>()
{
    new Person(){Name = "Rose",Age = 22},
    new Person(){Name = "Jack",Age = 21},
    new Person(){Name = "Ju",Age = 22}
};
 
//通过计算age的大小来获得新的属性AgeScope 并存入到一个匿名类型中
var temp = from p in lists select new { newName = p.Name, AgeScope = p.Age > 21 ? "Old" : "Young" };
 
foreach (var item in temp)
{
    Console.WriteLine(item.newName+ ":" + item.AgeScope);
}

很方便

后面都是Link 先跳过。。。。

猜你喜欢

转载自blog.csdn.net/qq_33413868/article/details/81456759