C#面向对象第六天总结
来源:互联网 发布:ubuntu ftp路径设置 编辑:程序博客网 时间:2024/06/05 15:38
1. 进程类process
2. 使用控制台打开文件案例
1)类的设计
父类CommonFile 属性:存储文件名 方法:打开文件的抽象方法OpenFile
子类TxtFile 构造函数:在创建TxtFile这个对象的时候,传入文件名
重写父类的抽象方法:OpenFile() 根据用户输入的磁盘路径以及文件名
通过进程类process去打开制定的文件
子类AviFile
2) 简单工厂的设计
写了一个静态方法,根据用户输入的文件名的后缀名,去创建不同的对象
由于不知道用户会输入什么类型的文件,所以在这个方法中返回的是父类类型
但父类里面装的是子类对象
3. 单例模式
只能创建一个对象
4. .NET Reflector 反编译器
ILSpy_Master
5. 静态和非静态
1) 在一个类中,如果既有静态成员,也有非静态成员,则首先初始化静态成员,并且只是初始化一次
不管你有多少个对象,都只初始化一次
2) 在整个项目当中静态成员是资源共享的(内存中存储在静态存储区)
3) 静态成员只有在整个项目都结束的时候,才释放资源
6. 索引器:方便去使用类中的集合 通过给类赋值,实际上给类中的集合赋值
7. 委托:
想把一个方法作为参数传给另一个方法时,就是把这个方法作为委托类型
委托就是创建委托对象去指向一个方法
声明的委托必须跟指向的方法具有同样的签名(返回值和参数类型相同)
多播委托:一个委托指向多个方法 调用时一块儿调用 += -=
8. 匿名函数--就是只使用一次的函数,无需函数名
delegate(参数){} 要使用委托变量指向匿名函数
9. lamda表达式--本质上就是匿名函数 -- 使用委托的地方就可以使用lamda表达式
泛型委托?? Predicate<T> Comparison<T>
List<int> list = new List<int>();
list.RemoveAll(n=>n>2) --Lamda表达式 作为委托 表示条件
10. 使用委托实现两个窗体传值
把委托作为构造函数的参数,这样在Form1窗体中创建Form2窗体对象的时候,
就可以把Form1中的函数传递给Form2,从而实现在Form2中调用方法来控制Form1的显示
使用事件实现两个窗体传值
11. XML:存储数据,小型的数据库
节点 元素
XML有且只能有一个根节点
使用命名空间using System.Xml;
//在内存中创建一个XML文档对象
XmlDocument doc = new XmlDocument();
//创建了第一行 XML声明
XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8", null);
doc.AppendChild(dec);
//创建根节点
XmlElement books = doc.CreateElement("Books");
doc.AppendChild(books);
//给根节点再添加子节点
XmlElement book = doc.CreateElement("Book");
books.AppendChild(book);
XmlElement orderItem1 = doc.CreateElement("OrderItem");
//给标签设置属性并且给属性设值
orderItem1.SetAttribute("Name", "wawa");
orderItem1.SetAttribute("Count", "5");
items.AppendChild(orderItem1);
//保存Xml文件
doc.Save("new.xml");
2. 使用控制台打开文件案例
1)类的设计
父类CommonFile 属性:存储文件名 方法:打开文件的抽象方法OpenFile
子类TxtFile 构造函数:在创建TxtFile这个对象的时候,传入文件名
重写父类的抽象方法:OpenFile() 根据用户输入的磁盘路径以及文件名
通过进程类process去打开制定的文件
子类AviFile
2) 简单工厂的设计
写了一个静态方法,根据用户输入的文件名的后缀名,去创建不同的对象
由于不知道用户会输入什么类型的文件,所以在这个方法中返回的是父类类型
但父类里面装的是子类对象
3. 单例模式
只能创建一个对象
4. .NET Reflector 反编译器
ILSpy_Master
5. 静态和非静态
1) 在一个类中,如果既有静态成员,也有非静态成员,则首先初始化静态成员,并且只是初始化一次
不管你有多少个对象,都只初始化一次
2) 在整个项目当中静态成员是资源共享的(内存中存储在静态存储区)
3) 静态成员只有在整个项目都结束的时候,才释放资源
6. 索引器:方便去使用类中的集合 通过给类赋值,实际上给类中的集合赋值
7. 委托:
想把一个方法作为参数传给另一个方法时,就是把这个方法作为委托类型
委托就是创建委托对象去指向一个方法
声明的委托必须跟指向的方法具有同样的签名(返回值和参数类型相同)
多播委托:一个委托指向多个方法 调用时一块儿调用 += -=
8. 匿名函数--就是只使用一次的函数,无需函数名
delegate(参数){} 要使用委托变量指向匿名函数
9. lamda表达式--本质上就是匿名函数 -- 使用委托的地方就可以使用lamda表达式
泛型委托?? Predicate<T> Comparison<T>
List<int> list = new List<int>();
list.RemoveAll(n=>n>2) --Lamda表达式 作为委托 表示条件
10. 使用委托实现两个窗体传值
把委托作为构造函数的参数,这样在Form1窗体中创建Form2窗体对象的时候,
就可以把Form1中的函数传递给Form2,从而实现在Form2中调用方法来控制Form1的显示
使用事件实现两个窗体传值
11. XML:存储数据,小型的数据库
节点 元素
XML有且只能有一个根节点
使用命名空间using System.Xml;
//在内存中创建一个XML文档对象
XmlDocument doc = new XmlDocument();
//创建了第一行 XML声明
XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8", null);
doc.AppendChild(dec);
//创建根节点
XmlElement books = doc.CreateElement("Books");
doc.AppendChild(books);
//给根节点再添加子节点
XmlElement book = doc.CreateElement("Book");
books.AppendChild(book);
XmlElement orderItem1 = doc.CreateElement("OrderItem");
//给标签设置属性并且给属性设值
orderItem1.SetAttribute("Name", "wawa");
orderItem1.SetAttribute("Count", "5");
items.AppendChild(orderItem1);
//保存Xml文件
doc.Save("new.xml");
0 0
- C#面向对象第六天总结
- java基础总结第六天 面向对象
- 第六天面向对象
- C#面向对象总结
- c#面向对象总结
- C#面向对象第二天总结
- C#面向对象第四天总结
- C#面向对象概念总结
- 【C#之面向对象总结】
- java面向对象2_第六天
- Day06第六天java基础------------面向对象
- Java基础---第六天 面向对象
- 第六天 案例、深入面向对象
- 第六章 面向对象
- 第六章:面向对象
- Core Java第六章知识点总结——面向对象
- C# 面向对象总结 (十二大特性)
- c#面向对象: 索引器知识总结
- 第二十三讲 用if语句实现分支结构
- (PHP)微信公众平台模拟登陆和发送消息详解
- opennebula v4.10设计和安装指导 一
- QT入门心得
- linux shell脚本学习xargs命令使用详解
- C#面向对象第六天总结
- c++抽象类
- 再次拿起ios
- Java学习日记之掌控硬盘(2)
- C++ 记录Windows程序崩溃时的dumpfile
- sprintf的用法
- Oracle 数据库安装总结(个人亲测)
- Cport 详细解释和应用
- exploit - simple stack overflow - BlazeDVD Pro player 6.1