黑马自学10.6学习
1.如果我们的类要被foreach遍历就是要实现IEnumerable这个接口
2.为什么呢?
a) Foreach 背后的代码:
b) IEnumerator tor=li1.GetEnumerator();
c) While(tor.MoveNext())
d) {
e) Console.WriteLine(tor.Current);
f) }
g) GetEnumerator() 这个方法返回1个实现了IEnumerator 接口的对象
h) 所以我们要实现IEnumerator 这个接口中GetEnumerator()的话,就要写一个类来实现IEnumerator 接口并在GetEnumerator()方法中返回这个接口的对象
i) IEnumerator 接口中定义1个Current只读属性 MoveNext方法Reset方法
j) MoveNext方法的作用将指针向前移动一位,并判断当前位是否有元素,如果有返回true如果没有返回flase
k) Current只读属性 得到当前指针指向的值
l) 这2个方法都是在操作数组,而这个数组在我们的集合类中,所有我们要想方法将集合类的数组传递到当前地代器 类中
m) 地带器对象在集合类中创建,所有可以通过构造函数让几个将他的数组传递给地带器 这个时候地带器对象中已经有了数组的引用
n) 实现MoveNext方法 声明index变量用来保存当前指针指向的数组的索引,默认是-1,每调用1次这个方法,指针就像前移1位 所有index++;判断数组[index]这个元素是否存在,index.count就 存在所以地带器对象还需要知道元素的有效个数,通过构造函数传入
- o) 显现Current只读属性
p) 直接返回指针指向的数据 retrun arr[index];
Hashtable 哈希表
添加 Add()
修改 对象[“键”]
删除 clear();Remove();
遍历 直接遍历集合 ,需要用到DictionaryEntry对象 或者直接遍历键或者值
判断是否有指定的键 Contains();
键值对 是以键的hash值算出其对应的下标.
单列模式
私有化一个构造函数
提供一个私有的Person对象
提供一个公共的静态方法,返回上面的变量
文件操作
Path类
Path.CHangeExtension 更改文件的扩展名称,对实际的文件名没有影响
Path.Combine合并多个字符串路径,如果没有\自动添加
Path.GetDirectoryName 得到文件所在的目录
Path.GetExtension 返回文件的扩展名
Path.GetFileName 返回文件名和扩展名
Path.GetFileNameWithoutExtension得到文件名,没有扩展名
Path.GetFullPath通过相对路径得到绝对路径
Path.GetTempPath得到系统的临时文件路径
Path.GetTempFileName得到一个随机的系统文件名
浙公网安备 33010602011771号