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");    
   
0 0
原创粉丝点击