黑马自学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 接口中定义1Current只读属性 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得到一个随机的系统文件名

 

posted on 2015-10-10 12:06  韩小帅  阅读(161)  评论(0)    收藏  举报

导航