zoukankan      html  css  js  c++  java
  • C#第十三天

    1、单例模式

    1)将构造函数私有化

    2)提供一个静态方法,返回一个对象

    3)创建一个单例

     1 namespace 单例模式
     2 {
     3     public partial class Form1 : Form
     4     {
     5         public Form1()
     6         {
     7             InitializeComponent();
     8         }
     9 
    10         private void button1_Click(object sender, EventArgs e)
    11         {
    12             Form2 f2 = Form2.GetSingle();
    13             f2.Show();
    14         }
    15     }
    16 }
    View Code
     1 namespace 单例模式
     2 {
     3     public partial class Form2 : Form
     4     {
     5         //全局唯一的单例(只能打开一个窗体)
     6         public static Form2 _FormSingle = null;
     7         private Form2()
     8         {
     9             InitializeComponent();
    10         }
    11         public static Form2 GetSingle()
    12         {
    13             if (_FormSingle==null)
    14             {
    15                 _FormSingle = new Form2();
    16             }
    17             return _FormSingle;
    18         }
    19 
    20     }
    21 }
    View Code

     2、XML 可扩展的标记语言 

    XML:存储数据 注意:XML是严格区分大小写的,XML标签也是成对出现的

    XML有且只能有一个根节点

    元素:

    节点:

    在实际的应用开发中需要我们对xml进行添加节点和属性,动态的去完成,在这之前,先看看XmlNode和XmlElement之间的关系

    1)、XmlElement继承XmlLinkedNode又继承XmlNode,所以XmlElement是XmlNode的子集,那么从继承的关系来说,XmlNode的属性,XmlElement也可以使用。

    2)、XmlNode是.Net提供的抽象类,不能直接实例化,只能通过XmlDocument的CreateNode方法来创建,但是XmlElement则不需要,可以直接实例化创建

    3)、为节点添加属性的时候,可以直接通过XmlElement的SetAttribute来添加,也可以通过XmlNode的Attribute的add方法来添加,同样添加文本节点的时候也是如此

    4)、XmlDocument是XmlNode的扩展类,包含了很多XmlNode没有的方法和属性,我们可以通过它将xml加载到内存中通过Dom来处理,也可以通过它来创建节点等

    下面就来看看如何添加节点和属性

    1)、首先我们需要创建一个节点元素,创建的时候我们可以通过XmlDocument的CreateElement来创建,或者是通过

    XmlElement直接实例化,然后通过属性赋值,比如Name

    2)、创建一个XmlNode,也就是说创建的节点需要放在什么位置,然后创建的节点加入该XmlNode后面就可以了(可以通过

    XmlNode的AppendChild方法来添加),比如加入根目录下面:XmlDocument.DocumentElement.PrependChild

    (XmlElement),如果是其他节点下,可以通过Xmldocument的SelectSingleNode("//Titles//Title")来获得XmlNode

    3)、添加属性的时候,可以直接在创建XmlElment的时候,通过XmlElement的SetAttribute来为节点创建属性,或者是创建

    一个XmlAttribute实例:XmlAttribute xmlArr=XmlDocument.CreateAttribute("属性值"),然后通过XmlNode的

    Attributes.add(XmlArribute)来添加

    创建XML:

     1 namespace 创建XML
     2 {
     3     class Program
     4     {
     5         static void Main(string[] args)
     6         {
     7             //通过代码来创建XML文档
     8             //1.引用命名空间
     9             //2.创建XML文档对象
    10             XmlDocument doc = new XmlDocument();
    11             //3.创建第一行描述信息,并且添加到doc文档中
    12             XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8", null);
    13             doc.AppendChild(dec);
    14             //4.创建根节点
    15             XmlElement books = doc.CreateElement("Books");
    16             //将根节点添加到文档中
    17             doc.AppendChild(books);
    18             //5.给根节点Books创建子节点
    19             XmlElement book1 = doc.CreateElement("Book");
    20             //将book添加到根节点
    21             books.AppendChild(book1);
    22             //6.给book1添加子节点
    23             XmlElement name1 = doc.CreateElement("Name");
    24             name1.InnerText = "西游记";
    25             book1.AppendChild(name1);
    26             XmlElement price1 = doc.CreateElement("Price");
    27             price1.InnerText = "10";
    28             book1.AppendChild(price1);
    29             XmlElement des1 = doc.CreateElement("Des");
    30             des1.InnerText = "好看";
    31             book1.AppendChild(des1);
    32             
    33 
    34             XmlElement book2 = doc.CreateElement("Book");
    35             books.AppendChild(book2);
    36             XmlElement name2 = doc.CreateElement("Name");
    37             name2.InnerText = "水浒传";
    38             book2.AppendChild(name2);
    39             XmlElement price2 = doc.CreateElement("Price");
    40             price2.InnerText = "20";
    41             book2.AppendChild(price2);
    42             XmlElement des2 = doc.CreateElement("Des");
    43             des2.InnerText = "好好好";
    44             book2.AppendChild(des2);
    45 
    46             doc.Save("Books.xml");
    47             Console.WriteLine("保存成功");
    48             Console.ReadKey();
    49         }
    50     }
    51 }
    View Code

    创建带属性的XML:

     1 namespace 创建带属性的XML
     2 {
     3     class Program
     4     {
     5         static void Main(string[] args)
     6         {
     7             XmlDocument doc = new XmlDocument();
     8             XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8", null);
     9             doc.AppendChild(dec);
    10 
    11             XmlElement order = doc.CreateElement("Order");
    12             doc.AppendChild(order);
    13             XmlElement CustomerName = doc.CreateElement("CustomerName");
    14             //CustomerName.InnerXml = "<p>我是一个标签</p>";
    15             CustomerName.InnerXml = "<p>我是一个p标签</p>";
    16             order.AppendChild(CustomerName);
    17             XmlElement CustomerNumber = doc.CreateElement("CustomerNumber");
    18             CustomerNumber.InnerText = "<p>我是一个标签</P>";
    19             order.AppendChild(CustomerNumber);
    20             XmlElement items = doc.CreateElement("Items");
    21             order.AppendChild(items);
    22 
    23             XmlElement orderItem1 = doc.CreateElement("OrderItem");
    24             //给节点添加属性
    25             orderItem1.SetAttribute("Name", "西游记");
    26             orderItem1.SetAttribute("Count", "10");
    27             items.AppendChild(orderItem1);
    28             XmlElement orderItem2 = doc.CreateElement("OrderItem");
    29             //给节点添加属性
    30             orderItem2.SetAttribute("Name", "西游记");
    31             orderItem2.SetAttribute("Count", "10");
    32             items.AppendChild(orderItem2);
    33             XmlElement orderItem3 = doc.CreateElement("OrderItem");
    34             //给节点添加属性
    35             orderItem3.SetAttribute("Name", "西游记");
    36             orderItem3.SetAttribute("Count", "10");
    37             items.AppendChild(orderItem3);
    38             doc.Save("Order.xml");
    39             Console.WriteLine("保存成功");
    40             Console.ReadKey();
    41         }
    42     }
    43 }
    View Code

    读取XML:

     1 namespace 读取XML
     2 {
     3     class Program
     4     {
     5         static void Main(string[] args)
     6         {
     7             XmlDocument doc = new XmlDocument();
     8             //加载需要读取的xml
     9             doc.Load("Books.xml");
    10             //获得根节点
    11             XmlElement books = doc.DocumentElement;
    12             //获得子节点
    13             XmlNodeList xnl = books.ChildNodes;
    14             foreach (XmlNode item in xnl)
    15             {
    16                 Console.WriteLine(item.InnerText); 
    17             }
    18             Console.ReadKey();
    19         }
    20     }
    21 }
    View Code

    读取带属性的XML

     1 namespace 读取带属性的XML
     2 {
     3     class Program
     4     {
     5         static void Main(string[] args)
     6         {
     7             XmlDocument doc = new XmlDocument();
     8             doc.Load("Order.xml");
     9             XmlNodeList xnl = doc.SelectNodes("/Order/Items/OrderItem");
    10             foreach (XmlNode node in xnl)
    11             {
    12                 Console.WriteLine(node.Attributes["Name"].Value);
    13                 Console.WriteLine(node.Attributes["Count"].Value);
    14             }
    15             Console.ReadKey();
    16         }
    17     }
    18 }
    View Code

    删除节点:

     1 namespace 删除节点
     2 {
     3     class Program
     4     {
     5         static void Main(string[] args)
     6         {
     7             XmlDocument doc = new XmlDocument();
     8             doc.Load("Order.xml");
     9             XmlNode xn = doc.SelectSingleNode("/Order/Items");
    10             xn.RemoveAll();
    11             doc.Save("Order.xml");
    12             Console.WriteLine("删除成功 ");
    13         }
    14     }
    15 }
    View Code

    追加XML:

     1 namespace 追加XML
     2 {
     3     class Program
     4     {
     5         static void Main(string[] args)
     6         {
     7             //追加XML文档
     8             XmlDocument doc = new XmlDocument();
     9             XmlElement books;
    10             if (File.Exists("Books.xml"))
    11             {
    12                 //如果文件存在 加载XML
    13                 doc.Load("Books.xml");
    14                 //获得文件的根节点
    15                 books = doc.DocumentElement;
    16 
    17             }
    18             else
    19             {
    20                 //如果文件不存在
    21                 //创建第一行
    22                 XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8", null);
    23                 doc.AppendChild(dec);
    24                 //创建根节点
    25                 books = doc.CreateElement("Books");
    26                 doc.AppendChild(books);
    27 
    28             }
    29             //5.给根节点Books创建子节点
    30             XmlElement book1 = doc.CreateElement("Book");
    31             //将book添加到根节点
    32             books.AppendChild(book1);
    33             //6.给book1添加子节点
    34             XmlElement name1 = doc.CreateElement("Name");
    35             name1.InnerText = "西游记";
    36             book1.AppendChild(name1);
    37             XmlElement price1 = doc.CreateElement("Price");
    38             price1.InnerText = "10";
    39             book1.AppendChild(price1);
    40             XmlElement des1 = doc.CreateElement("Des");
    41             des1.InnerText = "好看";
    42             book1.AppendChild(des1);
    43 
    44             doc.Save("Books.xml");
    45         }
    46     }
    47 }
    View Code
  • 相关阅读:
    数据库优化设计方案(转)
    (转)Creating a DotNetNuke® Module Using CodeSmith Tools(For DotNetNuke Version 4.4.0 or higher)
    诱人的社区DotNetNuke免费模块列表
    C#版 DotNetNuke(DNN) 4.4.0
    在Asp.net注册js
    .net关于企业Excel报表的生成
    用DNN制作的站点
    Rainbow Resource
    ASP.NET Futures
    (轉)Net中获取CPU编号
  • 原文地址:https://www.cnblogs.com/ggsdduzbl/p/4964866.html
Copyright © 2011-2022 走看看