摘要: 不要为迭代器设置可读属性:其一:违背了设计原则的开闭原则,被设置到集合中的迭代器可能会导致集合的行为发生异常或者变动; 其二:LINQ可以不创建任何新的类型就能满足任何迭代需求。 阅读全文
posted @ 2022-12-17 10:24 Wen_Chen 阅读(15) 评论(0) 推荐(0)
摘要: 数据视图:虚拟的表格,但是对视图进行增删改的时候对应的表也会发生变化。视图是由几个表组合到一起的东西。 阅读全文
posted @ 2022-12-16 08:45 Wen_Chen 阅读(37) 评论(0) 推荐(0)
摘要: Parallel.ForEach<DataRow>(taskTb.AsEnumerable(), (Action<DataRow>)(taskRow =>{})) 委托的形式遍历表中的每行: DataRow:行;taskTb:表;taskRow:参数。 阅读全文
posted @ 2022-12-16 08:45 Wen_Chen 阅读(148) 评论(0) 推荐(0)
摘要: 实现自定义集合接口,需要继承ICollection和IEnumerable接口。 如果继承List则会丧失接口的使用。List并没有提供可供子类使用的protected成员。 在实现List接口的时候,new Add方法此时并没有覆盖掉List中的Add方法。 新建三个类 class Employe 阅读全文
posted @ 2022-12-15 20:58 Wen_Chen 阅读(30) 评论(0) 推荐(0)
摘要: 确保集合的线程安全。在开启多线程操作集合的时候,很容易对集合进行增删改查,这样子,集合的访问情况就会变化。 AutoResetEvent:reset()方法.将线程设置为非终止状态,导致线程阻止;set()方法.将线程设置为终止状态,允许一个或多个等待线程继续。两者设置成功均返回true,不成功返回 阅读全文
posted @ 2022-12-15 20:00 Wen_Chen 阅读(75) 评论(0) 推荐(0)
摘要: 集合总体上分为线性集合和非线性集合。线性集合具有直接前驱和直接后驱;而非线性集合可能有多个后驱或者前驱。 线性集合按存储方式又分为:直接存储和顺序存储。 直接存储:该类型的集合数据元素可以直接通过下标来访问(Array,string,struct);优点:向数据结构中添加元素很高效,直接放在数据末尾 阅读全文
posted @ 2022-12-15 09:31 Wen_Chen 阅读(66) 评论(0) 推荐(0)
摘要: 在C#中的ICloneable中给出的Clone方法只是一个模棱两可的方法,并不足以实现深拷贝和浅拷贝。 深拷贝: using(Stream objectStream = new MemoryStream()) { IFormatter formatter = new BinaryFormatter 阅读全文
posted @ 2022-12-14 20:47 Wen_Chen 阅读(26) 评论(0) 推荐(0)
摘要: foreach:自动将代码置入try-finally块;若类型实现了IDispose接口,它会在循环结束后自动调用Dispose方法。 using是try-finally的语法糖。 集合版本:任何对集合进行增删操作的都会使集合版本+1; foreach使用的是迭代器,每次遍历都会针对集合的版本进行确 阅读全文
posted @ 2022-12-14 13:23 Wen_Chen 阅读(69) 评论(0) 推荐(0)
摘要: 数组在定义的时候就确定长度,且不可变。 ArrayList是链表结构,可以动态的增减内存空间。 List是ArrayList的泛型实现,除去了拆箱装箱的操作。 int[] iArr = { 0, 1, 2, 3, 4, 5, 6 }; ArrayList arrayList = ArrayList. 阅读全文
posted @ 2022-12-14 10:16 Wen_Chen 阅读(22) 评论(0) 推荐(0)
摘要: 实现IFormattable的Tostring的方法,实现为类型输出格式化字符串。 public string ToString(string format, IFormatProvider formatProvider) { switch (format) { case "EN": return 阅读全文
posted @ 2022-12-11 13:46 Wen_Chen 阅读(58) 评论(0) 推荐(0)