美文网首页
17.03.13 .Net基础(四)

17.03.13 .Net基础(四)

作者: CH小猫 | 来源:发表于2017-03-14 08:40 被阅读11次
XML
创建XML文档
// 1.创建一个XML文档对象
XmlDocument doc = new XmlDocument();
// 2.创建第一行描述信息
XmlDeclaration dec = doc.CreateXmlDeclaration("1.0","utf-8",null);
// 3.将创建的第一行数据添加到文档中
doc.AppendChild(dec);
// 4.给文档添加根节点
XmlElement book = doc.CreateElent("Books");
// 5.将根节点添加给文档对象
doc.AppendChild(book);
// 6.给根节点添加子节点
XmlElement book1 = doc.CreateElent("Book");
// 将子节点book1添加到根节点下
books.AppendChild(book1);
// 7.给book1添加子节点
XmlElement bookName1 = doc.CreateElement("BookName");
// 8.设置标签中显示的文本
bookName1.InnerText = "水浒传";
book1.AppendChild(bookName1);
DOM方式创建XML文档对象
XmlDocument doc = new XmlDocument();
XmlDeclaration dec = doc.CreateXmlDeclaration("1.0","utf-8",null);
doc.AppendChild(dec);
XmlElement order= doc.CreateElent("Order");
doc.AppendChild(order);
XmlElement customerName= doc.CreateElent("CustomerName");
customerName.InnerXml = "小猫";
// 添加节点的属性
customerName.setAttribute("ID","0101");
order.AppendChild(customerName);
文档对象模型
List<Student> list = new List<Student>();
list.Add(new Student() { ID = 1, Name = "小猫", Age="30" });
XmlDocument doc = new XmlDocument();
XmlDeclaration dec = doc.CreateXmlDeclaration("1.0","utf-8",null);
doc.AppendChild(dec);
XmlElement person= doc.CreateElent("Person");
doc.AppendChild(person);
// 通过循环List集合,所有对象,以节点的形式添加到XML文档中
for(int i = 0; i < list.Count; i++)
{
  XmlElement student = doc.CreateElement("Student");
  student.SetAttribute("studentID", list[i].ID.ToString());
  XmlElement name= doc.CreateElement("Name");
  name.InnerXml = list[i].Name;
  XmlElement age= doc.CreateElement("Age");
  age.InnerXml = list[i].Age.ToString();
  person.AppendChild(student);
  student.AppendChild(name);
  student.AppendChild(age);
}
XML文档的增删改查
  • xml文档追加
XmlDocument doc  = new XmlDocument();
if(File.Exists("Student.xml"))
{
  //加载文件
  doc.Load("Student.xml");
  //获得根节点
  XmlElement person = doc.DocumentElement;
}
else
{
  //不存在
  XmlDeclaration dec = doc.CreateXmlDeclaration("1.0","utf-8",null);
  doc.AppendChild(dec);
  XmlElement order= doc.CreateElent("Order");
  doc.AppendChild(order);
}
  • 读取XML文档
XmlDocument doc  = new XmlDocument();
doc.Load("order.xml");
// 获得根节点
XmlElement order = doc.DocumentElement;
// 获得根节点下面的所有子节点
XmlNodeList xnl = order.ChildNodes;
foreach (XmlNode item in xnl)
{
  Console.WriteLine(item.InnerText);
}
使用XPath的方式来读取XML文件
XmlDocument doc  = new XmlDocument();
doc.Load("order.xml");
// 获得根节点
XmlElement order = doc.DocumentElement;
XmlNode xn = order.SelectSingleNode("/Order/CustomerName[@Name='雨衣']");
委托
public delegate string DelProStr(string str);
static void ProString(string[] names,DelProStr del)
{
  for(int i = 0; i < names.Lenght; i++)
  {
    names[i] = names[i].ToLower();
  }
}

ProString(names, (name) => { return name.ToUpper(); });
泛式委托
static T GetMax<T> (T[] nums, DelCompare<T> del)
{
  T max = nums[0];
  for(int i = 0; i < nums.Length; i++)
  {
    if(del(max, nums[i]) < 0)
    {
      max = nums[i];
    }
  }
  return max;
}
多播委托
public delegate void DelTest();
DelTest del = Test1;
del += Test2;
del += Test3;
del += Test4;
del -= Test2;
del();

static void Test1(){}
static void Test2(){}
static void Test3(){}
static void Test4(){}
定义事件
  • 语法:访问修饰符 event 委托名称 事件名称;
  • 定义事件
    public delegate void delTest;
    public event delTest eventTest;
  • 注册事件
    eventTest += new delTest(method1);
    eventTest += new delTest(method2);
委托与事件总结
  • 委托的作用:占位,在不知道将来要执行的方法的具体代码时,可以先用委托变量来代替方法调用(委托的返回值,参数列表要确定).在实际调用之前,需要为委托赋值,否则为null.
  • 事件的作用:事件的作用与委托变量一样,只是功能上比委托变量有更多的限制.(比如:1.只能通过+=或-=来绑定方法(事件处理程序) 2.只能在类内部调用(触发)事件)

相关文章

  • 17.03.13 .Net基础(四)

    XML 创建XML文档 DOM方式创建XML文档对象 文档对象模型 XML文档的增删改查 xml文档追加 读取XM...

  • 黑马训练营Asp.Net第2期完整版

    初级 .Net入门教程_.Net入门视频教程|黑马程序员 C#基础教程_C#基础视频教程_黑马程序员 .Net基础...

  • .Net基础06

    主要内容 常量 语法: 什么时候会用到常量?声明后不想被人改变的量 枚举 语法: public:访问修饰符。公开的...

  • .Net基础11

    File类 上一篇文章漏了几个方法,这里补上。 绝对路径和相对路径 绝对路径:通过给定的这个路径直接能在我的电脑中...

  • .Net基础 01

    .Net FrameWork框架是.Net平台中不可缺少的一部分,它提供了一个稳定的运行环境来保证我们基于.Net...

  • 17.03.10 .Net基础

    命名规范 Camel:多用于给变量或字段命名,第一个单词的首字母小写,其余每个单词的首字母大写.给字段命名,前面必...

  • .Net基础03

    主要内容 类型转换 1、类型如果相兼容的两个变量,可以使用自动类型转换或者强制类型转换,2、如果两个类型的变量不兼...

  • .Net基础02

    主要内容 注释 顾名思义:注释 解释不写注释是流氓,名字瞎起是扯淡 单行注释 // 多行注释 /**/ 文...

  • .Net基础05

    主要内容 一个小练习 不断要求用户输入一个数字(假定用户输入的都是正整数),当用户输入end的时候显示刚才输入的数...

  • .Net基础04

    主要内容 异常捕获 语法上没有错误,在程序运行的过程当中,由于某些原因程序出现了错误,不能正常的运行。 我们需要用...

网友评论

      本文标题:17.03.13 .Net基础(四)

      本文链接:https://www.haomeiwen.com/subject/uckfnttx.html