1>文件压缩过程: 1.创建读取流File.OpenRead() 2.创建写入流File.OpenWrite(); 3.创建压缩流new GZipStream();将写入流作为参数与。 4.每次通过读取流读取一部分数据,通过压缩流写入。2>文件解压过程 1.创建读取流:File.OpenRead() 2.创建压缩流:new GZipStream();将读取流作为参数 3.创建写入流File.OpenWrite(); 4.每次通过压缩流读取数据,通过写入流写入数据。文件压缩举例说明: //1.创建读取文本文件的流 using (FileStream fsRead = File.Ope Read More
委托和事件 事件是通过委托联系起来的,委托才是事件的核心内容,如果没有委托,事件就什么都不是了。 例如在三连击事件中: 三连击事件被触发,要执行的代码,这里的代码不能“写死”,要有将来使用该控件的用户来定义三连击之后要执行什么样的代码也就是说这里需要执行一段代码,而这个方法具有现在不确定,由将来的按钮使用者来决定,场景非常类似于委托的使用。 1 private void Form1_Load(object sender, EventArgs e) 2 3 { 4 5 ... Read More
如果一个类型的对象,想要在foreach中可以遍历,该类型必须有一个方法:IEumerator GetEnumerator(),一般做法是让该类型实现IEnumeralbe接口,则该类型中必然就有GetEnumerator()方法了。GetEnumerator()的返回值是IEnumerator类型。然后写一个类型,该类型实现了IEnumerator接口的类,在GetEnumerator()方法中返回这个类型的对象。其中,实现IEnumerable接口的类型即为可枚举类型,实现IEnumerator接口的类型为枚举器。yield关键字便实现了对对象的遍历。 例如: namespace _for Read More
委托是一种数据类型。只有委托这种数据类型才能保存方法变量。既然是数据类型,就可以通过该数据类型声明变量。不同类型的方法(参数不同,返回值不同),需要使用不同的委托类型来存储,所以不同类型的方法需要自定义不同类型的委托,就像需要定义不同的类来存储不同对象一样。委托是不存在重载的同一个方法则可以使用同一个“委托类型”来存储。一般委托也直接写在命名空间下,与类是同一个级别的东西。定义委托的时候,需要制定该委托类型将来要存储的方法的返回值与参数列表。制定后,该委托类型就只能存储需要我们弄清楚的是:委托变量并不是方法,所以不能直接调用。要想调用委托中保存的方法,需要通过委托变量Invoke来调用委托的意 Read More
FileDirectorySystem.io输入和输出流DirectoryInfo用来模拟一个文件夹对象FileInfo用来模拟一个文件对象Path也是一个静态类获取关于路径的一些列操作都用path类文件流,抽象类:FileStream//文件流,MemoyStream(内存流),NetworkStream(网络流)StreamWriter//快速写入文本文件StreamReader//快速读出文本文件GzipStream//压缩Path类:对字符串进行操作:Stringpath=@"c\xxx.txt";Path=path.ChangeExtension(path,&qu Read More
贪婪模式:当出现限定符+、?、*、{n,}类似这样的限定符时,正则表达式会默认会可能多的进 行匹配,这种方式叫做“贪婪模式”在限定符后加?就表示“终止贪婪模式”终止贪婪模式意味着尽可能少的匹配。环视也是断言(只判断,不匹配)的一种,环视本身不予匹配。环视有四种:写法是:(?=)肯定正向环视 (?<=)肯定逆向环视(?<!)否定逆向环视在正向环视的时候()不参与分组。正则表达式是来操作字符串的,会用但是不要滥用。例如: 将张三:18999141265李四:13111111111王五:13488888888电信:10000移动:10086联通:10010工行:95588传智播客010- Read More
正则表达式是对字符串进行操作的。正则表达式元字符:.表示除\n(换行)之外的任意的当字符[]字符组。任意的单个字符,中括号中的任意一个字符()的含义:改变优先级。提取分组如果中括号中加—没有办法区分,。最好前面加上一个反义字符限定符:{n}表示前面的表达式必须出现n次{n ,}表示前面的表达式最后最少出现n次,最多不限{n,m}至少出现n次,最多出现m次*表示出现0次或多次+表示出现1次或多次?表示0次或1次。?的另外一个意思是:终止贪婪模式。 ^与$^表示一个字符串的开始。字符串必须以hiello开头$表示字符串的结束A$字符串的结束。必须以A结束A[^0-9]b指的是a到b之间除了0到9的 Read More
常用集合:类似数组集合ArrayList,List<T>键值对集合(哈希表集合):Hashtable,Dictionary<K,V>堆栈集合:Stack\Stack<T>(LIFO)队列集合:Queue,Queue<T>(FIFO)可排序键值对集合:(插入,检索没有哈希表集合高效)SortedList,SortedList<K,V>(占用内存更少,可以通过索引访问)SortedDictionary<K,V>(占用内存更多,没有索引,但插入删除元素的速度比SortedList快)Set集合,无顺序,不重复。HashSet&l Read More
程序集包含:类型元数据(描述在代码中定义的每一类型和成员,二进制形式)。程集元数据(程序集清单、版本号、名称等)、IL代码(这些都被装在exe或dll中)、资源文件。每个程序集都有自己的名称、版本等信息,这些信息可以通过AssemblyInfo.cs文件来自己定义。 获取一个类的类型 person p=new person(); Type Type=p.getType(); 得到一个类的类型 Type type=typeof(Person); 获取一个类型的父类 Type type=s.GetType().BaseType; 获取Person类型的所有方法(不包括私有方法) Perso... Read More
MicrosoftInternetExplorer402DocumentNotSpecified7.8Normal0 GC是垃圾收集器(GarbageCollection)。程序员不用担心内存管理,因为垃圾收集器会自动进行管理。GC只能处理托管内存资源的释放,对于非托管资源(例如:文件句柄,网络端口等)则不能使用GC进行回收,必须由程序员手工回收,一个例子就是FileStream或者SqlConnection需要程序员调用Dispose进行资源的回收。MicrosoftInternetExplorer402DocumentNotSpecified7.8Normal0 要请求垃圾收集,可以调用下 Read More