第九天
复习:
快速得到文件流:
FileStream fs=File.Open(); //返回FileStream
FileStream fs=File.OpenRead(); / /返回只读的FileStream
FileStream fs=File.OpenWrite(); //返回只写的FileStream
FileStream fs=new FileStream(参数);
Stream(所有流的父类,是一个抽象类。)
文件操作的类都在System.IO.*;
序列化对象:
字符串替换:
提取组, 一串数字中的一部分 替换
委托:
是一个数据类型,使用的时候需要new一个对象, 传递一个参数
定义委托:
2.这个委托将来要存储的方法如果没有返回值,那么委托也要定义成void,如果没有参数那么僵将来传递的方法也不能有参数;
3.作用: 就是可以在某个代码内部,嵌入一段外部代码. 相当于是: 注入;
4.一般在调用委托前, 或者是在触发事件前, 都要判断一下委托变量是否为null;
5.在调用委托变量方法时, 其实内部编译的时候还是调用了委托对象的Invoke()方法
6.委托只是把变的地方改变
匿名方法:
public delegate void MyD();
MyD md = delegate()
{
Console.WriteLine("sdsdsdsdsd");
};
md();
等同于:
MyD md = T;
md();
Console.ReadKey();
}
static void T()
{
Console.WriteLine("sdsdsdsdsd");
}
带参数的匿名方法:
YuD yd = delegate(string messge)
{
Console.WriteLine(messge);
};
yd("哈t哈t哈t哈t哈t哈t哈t");
Lambda其实就是一个匿名函数而已,
编译的时候会将lambda表达式编译成一个C#匿名方法;
但是使用lambda表达式会在很多时候减少代码量;
结果是11同等于: