• C#基础笔记(第二十二天)


    1.单例模式
    1)将构造函数私有化
    2)提供一个静态方法,返回一个对象
    3)创建一个单例

    2.XML可扩展的标记语言 HTML
    XML:存储数据
    不是单独.net的东西,是一个单独的,JAVA什么的都也用
    不需要背标签,要什么随便写
    注意:XML是严格区分大小写的
    XML标签也是成对出现的
    XML有且只有一个根节点
    节点:一个一个的标签就是节点
    元素:所有内容都是元素

    需要添加标签的时候用innerXml
    添加文本的时候用innerText

    //通过代码来创建XML文档
    //1.引用命名空间
    //2.创建XML文档对象
    XmlDocument doc = new XmlDocument();
    //3.创建第一行描述信息,并且添加到doc文档中
    XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8", null);
    doc.AppendChild(dec);
    //4.创建根节点
    XmlElement books= doc.CreateElement("Books");
    //将根节点添加到文档中
    doc.AppendChild(books);

    //5.给根节点Books创建子节点
    XmlElement book1= doc.CreateElement("Book");
    //将book添加到根节点
    books.AppendChild(book1);
    //6.给book1添加子节点
    XmlElement name1 = doc.CreateElement("Name");
    name1.InnerText = "金梅";
    book1.AppendChild(name1);

    XmlElement price1 = doc.CreateElement("Price");
    price1.InnerText = "10";
    book1.AppendChild(price1);

    XmlElement des1 = doc.CreateElement("Des");
    des1.InnerText = "好看";
    book1.AppendChild(des1);

    XmlElement book2 = doc.CreateElement("BOOK");
    books.AppendChild(book2);

    XmlElement name2 = doc.CreateElement("Name");
    name2.InnerText = "金梅";
    book2.AppendChild(name2);

    XmlElement price2 = doc.CreateElement("Price");
    price2.InnerText = "10";
    book2.AppendChild(price2);

    XmlElement des2 = doc.CreateElement("Des");
    des2.InnerText = "好看";
    book2.AppendChild(des2);

    doc.Save("Books,xml");
    Console.WriteLine("保存成功");
    ..............................................................................................................................................................
    XmlDocument doc = new XmlDocument();
    XmlDeclaration dec= doc.CreateXmlDeclaration("1.0","utf-8",null);
    doc.AppendChild(dec);

    XmlElement order = doc.CreateElement("Order");
    doc.AppendChild(order);

    XmlElement customerName = doc.CreateElement("CustomerName");
    customerName.InnerText = "刘洋";
    order.AppendChild(customerName);

    XmlElement customerNumber = doc.CreateElement("CustomerNumber");
    customerNumber.InnerText = "1000001";
    order.AppendChild(customerNumber);

    XmlElement items = doc.CreateElement("Items");
    order.AppendChild(items);

    XmlElement orderItem1 = doc.CreateElement("OrderItem");
    //给节点添加属性
    orderItem1.SetAttribute("Name", "充气娃娃");
    orderItem1.SetAttribute("Count", "10");
    items.AppendChild(orderItem1);

    XmlElement orderItem2 = doc.CreateElement("OrderItem");
    //给节点添加属性
    orderItem2.SetAttribute("Name", "充气娃娃");
    orderItem2.SetAttribute("Count", "10");
    items.AppendChild(orderItem2);

    XmlElement orderItem3 = doc.CreateElement("OrderItem");
    //给节点添加属性
    orderItem3.SetAttribute("Name", "充气娃娃");
    orderItem3.SetAttribute("Count", "10");
    items.AppendChild(orderItem3);

    doc.Save("Order.xml");
    Console.WriteLine("保存成功");
    Console.ReadKey();

    5.追加XML
    //追加XML文档
    XmlDocument doc = new XmlDocument();
    XmlElement books;
    if (File.Exists("Books.xml"))
    {
    //如果文件存在 加载XML
    doc.Load("Books.xml");
    //获得文件的根节点
    books= doc.DocumentElement;
    }
    else
    {
    //如果文件不存在
    //创建第一行
    XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "UTF-8", null);
    doc.AppendChild(dec);
    //创建根节点
    books = doc.CreateElement("Books");
    doc.AppendChild(books);
    }
    6.读取XML
    XmlDocument doc = new XmlDocument();
    //加载要读取的XML
    doc.Load("Books.xml");
    //获取根节点
    XmlElement books = doc.DocumentElement;

    //获得子节点 返回节点的集合
    XmlNodeList xnl = books.ChildNodes;
    foreach (XmlNode item in xnl)
    {
    Console.WriteLine(item.InnerText);
    }
    Console.ReadKey();
    XmlElement book1 = doc.CreateElement("Book");
    books.AppendChild(book1);
    XmlElement name1 = doc.CreateElement("Name");
    name1.InnerText = "C#大全";
    book1.AppendChild(name1);
    XmlElement Price1 = doc.CreateElement("Price");
    Price1.InnerText = "110";
    book1.AppendChild(Price1);
    XmlElement des1 = doc.CreateElement("Des");
    des1.InnerText = "看不懂";
    book1.AppendChild(des1);

    doc.Save("Books.xml");
    Console.WriteLine("保存成功");
    Console.ReadKey();

    7.读取带属性的XML文档
    XmlDocument doc = new XmlDocument();
    doc.Load("Order.xml");
    XmlNodeList xnl= doc.SelectNodes("/Order/Items/OrderItem");
    foreach (XmlNode node in xnl)
    {
    Console.WriteLine(node.Attributes["Name"].Value);
    Console.WriteLine(node.Attributes["Count"].Value);
    }
    Console.ReadKey();

    8.删除XML的节点
    XmlDocument doc = new XmlDocument();
    doc.Load("Order.xml");
    XmlNode xn = doc.SelectSingleNode("/Order/Items");
    xn.RemoveAll();
    doc.Save("Order.xml");
    Console.WriteLine("删除成功");
    Console.ReadKey();

    9、委托
    1)、为什么要使用委托
    将一个方法作为参数传递给另一个方法。方法的类型就是委托类型
    1. //DelSayHi del = SayHiEnglish;
    2.//DelSayHi del = new DelSayHi(SayHiEnglish);
    //del("李四");
    3. //Test("张三", SayHiChinese);
    2)、委托概念
    声明一个委托类型
    委托所指向的函数必须跟委托具有相同的签名
    3)、匿名函数
    没有名字的函数
    当方法只执行一次的时候用匿名函数
    public delegate void DelSayHi(string name);
    DelSayHi del = delegate (string name)
    {
    Console.WriteLine("你好"+name);
    };
    del("张三");
    Console.ReadKey();

    //lamda表达式(匿名函数更为简写的一种方式) => goes to(滚向)
    4)、练习:使用委托求数组的最大值
    5)、练习:使用委托求任意数组的最大值
    6)、泛型委托
    public delegate int DelCompare<T>(T t1,T t2);
    7)、多播委托
    委托可以指向多个函数
    DelTest del = T1;
    del += T2;
    del += T3;
    del += T4;
    del();
    Console.ReadKey();
    8)、lamda表达式
    public delegate void DelSayHi(string name);
    DelSayHi del = (string name) => { Console.WriteLine("Nice to meet you" + name); };
    del("李四");
    Console.ReadKey();

    object result= GetMax(nums,(object o1, object o2) => { return o1.ToString().Length - o2.ToString().Length; });

    Lamda表达式是匿名函数更为简单的一种表达方法。
    DelOne del1 = delegate (){ }; 匿名函数
    DelOne del2 = ()=>{ }; Lamda表达式

    DelTwo del1 = delegate (string name) { }; 匿名函数
    DelTwo del2=(string name)=>{ }; Lamda表达式

    DelThree del1 = delegate (string name) { return name; }; 匿名函数
    DelThree del2 = (string name) => { return name; }; Lamda表达式

    List<int> list = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
    list.Remove(0);根据项目来移除
    list.RemoveAt(0);根据下标来移除
    list.RemoveRange(5, 3);根据下标移除一定范围的元素。
    list.RemoveAll(n => n > 4);移除n(n可以随便写),限定n的范围,如移除大于4的

    9)、使用委托来实现窗体传值。

  • 相关阅读:
    处理视频流时可能出现的重复帧问题及解决办法
    shell脚本中cd命令无效
    C++教程之初识编程
    若干排序算法的Python实现方法及原理
    C/C++反三角函数使用注意
    ubuntu下安装pip install mysqlclient 报错 command "python setup.py egg_info" failed with error.....解决方案
    使用scrapy框架的monkey出现monkeypatchwarning: monkey-patching ssl after ssl...的解决办法
    机器学习之利用KNN近邻算法预测数据
    python数据分析的工具环境
    python代码实现经典排序算法
  • 原文地址:https://www.cnblogs.com/VSMinos/p/7873498.html
Copyright © 2020-2023  润新知