• 0505.Net基础班第二十二天(委托、XML和播放器项目)


    01索引器

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Threading.Tasks;
     6 
     7 namespace _01索引器
     8 {
     9     class Program
    10     {
    11         static void Main(string[] args)
    12         {
    13             Person p = new Person();
    14             p[0] = "张三";
    15             p[1] = "李四";
    16             p[1, 1] = "新数组";
    17             p[2, 1] = "新数组";
    18             //p["张三"] = 15;
    19             //p["李四"] = 20;
    20           //  p[]
    21             //p[0] = 1;
    22             //p[1] = 2;
    23             //Console.WriteLine(p[0]);
    24             //Console.WriteLine(p[1]);
    25             Console.ReadKey();
    26         }
    27     }
    28 
    29 
    30     public class Person
    31     {
    32         //int[] nums = new int[10];
    33         //public int this[int index]
    34         //{
    35         //    get { return nums[index]; }
    36         //    set { nums[index] = value; }
    37         //}
    38         //string[] names = new string[10];
    39         ////public string this[int index]
    40         ////{
    41         ////    get { return names[index]; }
    42         ////    set { names[index] = value; }
    43         ////}
    44 
    45         string[] names = new string[10];
    46         string[] newNames = new string[20];
    47         public string this[int index]
    48         {
    49             get { return names[index]; }
    50             set { names[index] = value; }
    51         }
    52 
    53         public string this[int index,int n]
    54         {
    55             get { return newNames[index]; }
    56             set { newNames[index] = value; }
    57         }
    58       ////  List<string> list = new List<string>();
    59       //  Dictionary<string, int> dic = new Dictionary<string, int>();
    60       //  public int this[string index]
    61       //  {
    62       //      get { return dic[index]; }
    63       //      set { dic[index] = value; }
    64       //  }
    65 
    66 
    67 
    68             
    69 
    70     }
    71 }
    View Code

    2、单例模式

     1 using System;
     2 using System.Collections.Generic;
     3 using System.ComponentModel;
     4 using System.Data;
     5 using System.Drawing;
     6 using System.Linq;
     7 using System.Text;
     8 using System.Threading.Tasks;
     9 using System.Windows.Forms;
    10 
    11 namespace _2_单例模式
    12 {
    13     public partial class Form1 : Form
    14     {
    15         public Form1()
    16         {
    17             InitializeComponent();
    18         }
    19 
    20         private void button1_Click(object sender, EventArgs e)
    21         {
    22             Form2 frm2 = Form2.GetSingle();//new Form2();
    23             frm2.Show();
    24         }
    25     }
    26 }
    View Code
     1 namespace _2_单例模式
     2 {
     3     partial class Form1
     4     {
     5         /// <summary>
     6         /// 必需的设计器变量。
     7         /// </summary>
     8         private System.ComponentModel.IContainer components = null;
     9 
    10         /// <summary>
    11         /// 清理所有正在使用的资源。
    12         /// </summary>
    13         /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
    14         protected override void Dispose(bool disposing)
    15         {
    16             if (disposing && (components != null))
    17             {
    18                 components.Dispose();
    19             }
    20             base.Dispose(disposing);
    21         }
    22 
    23         #region Windows 窗体设计器生成的代码
    24 
    25         /// <summary>
    26         /// 设计器支持所需的方法 - 不要
    27         /// 使用代码编辑器修改此方法的内容。
    28         /// </summary>
    29         private void InitializeComponent()
    30         {
    31             this.button1 = new System.Windows.Forms.Button();
    32             this.SuspendLayout();
    33             // 
    34             // button1
    35             // 
    36             this.button1.Location = new System.Drawing.Point(357, 93);
    37             this.button1.Name = "button1";
    38             this.button1.Size = new System.Drawing.Size(75, 23);
    39             this.button1.TabIndex = 0;
    40             this.button1.Text = "button1";
    41             this.button1.UseVisualStyleBackColor = true;
    42             this.button1.Click += new System.EventHandler(this.button1_Click);
    43             // 
    44             // Form1
    45             // 
    46             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
    47             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    48             this.ClientSize = new System.Drawing.Size(646, 408);
    49             this.Controls.Add(this.button1);
    50             this.Name = "Form1";
    51             this.Text = "Form1";
    52             this.ResumeLayout(false);
    53 
    54         }
    55 
    56         #endregion
    57 
    58         private System.Windows.Forms.Button button1;
    59     }
    60 }
    View Code
     1 using System;
     2 using System.Collections.Generic;
     3 using System.ComponentModel;
     4 using System.Data;
     5 using System.Drawing;
     6 using System.Linq;
     7 using System.Text;
     8 using System.Threading.Tasks;
     9 using System.Windows.Forms;
    10 
    11 namespace _2_单例模式
    12 {
    13     public partial class Form2 : Form
    14     {
    15         //全局唯一的单例
    16         public static Form2 FrmSingle=null;
    17 
    18         private Form2()
    19         {
    20             InitializeComponent();
    21         }
    22 
    23         public static Form2 GetSingle()
    24         {
    25             if (FrmSingle == null)
    26             {
    27                 FrmSingle = new Form2();
    28             }
    29             return FrmSingle;
    30         }
    31     }
    32 }
    View Code
     1 namespace _2_单例模式
     2 {
     3     partial class Form2
     4     {
     5         /// <summary>
     6         /// Required designer variable.
     7         /// </summary>
     8         private System.ComponentModel.IContainer components = null;
     9 
    10         /// <summary>
    11         /// Clean up any resources being used.
    12         /// </summary>
    13         /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    14         protected override void Dispose(bool disposing)
    15         {
    16             if (disposing && (components != null))
    17             {
    18                 components.Dispose();
    19             }
    20             base.Dispose(disposing);
    21         }
    22 
    23         #region Windows Form Designer generated code
    24 
    25         /// <summary>
    26         /// Required method for Designer support - do not modify
    27         /// the contents of this method with the code editor.
    28         /// </summary>
    29         private void InitializeComponent()
    30         {
    31             this.SuspendLayout();
    32             // 
    33             // Form2
    34             // 
    35             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
    36             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    37             this.ClientSize = new System.Drawing.Size(494, 360);
    38             this.Name = "Form2";
    39             this.Text = "Form2";
    40             this.ResumeLayout(false);
    41 
    42         }
    43 
    44         #endregion
    45     }
    46 }
    View Code
     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Threading.Tasks;
     5 using System.Windows.Forms;
     6 
     7 namespace _2_单例模式
     8 {
     9     static class Program
    10     {
    11         /// <summary>
    12         /// 应用程序的主入口点。
    13         /// </summary>
    14         [STAThread]
    15         static void Main()
    16         {
    17             Application.EnableVisualStyles();
    18             Application.SetCompatibleTextRenderingDefault(false);
    19             Application.Run(new Form1());
    20         }
    21     }
    22 }
    View Code

    03创建XML 

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Threading.Tasks;
     6 using System.Xml;
     7 namespace _03创建XML
     8 {
     9     class Program
    10     {
    11         static void Main(string[] args)
    12         {
    13             //通过代码来创建XML文档
    14             //1、引用命名空间
    15             //2、创建XML文档对象
    16             XmlDocument doc = new XmlDocument();
    17             //3、创建第一个行描述信息,并且添加到doc文档中
    18             XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8", null);
    19             doc.AppendChild(dec);
    20             //4、创建根节点
    21             XmlElement books = doc.CreateElement("Books");
    22             //将根节点添加到文档中
    23             doc.AppendChild(books);
    24 
    25             //5、给根节点Books创建子节点
    26             XmlElement book1 = doc.CreateElement("Book");
    27             //将book添加到根节点
    28             books.AppendChild(book1);
    29 
    30 
    31             //6、给Book1添加子节点
    32             XmlElement name1 = doc.CreateElement("Name");
    33             name1.InnerText = "金瓶";
    34             book1.AppendChild(name1);
    35 
    36             XmlElement price1 = doc.CreateElement("Price");
    37             price1.InnerText = "10";
    38             book1.AppendChild(price1);
    39 
    40             XmlElement des1 = doc.CreateElement("Des");
    41             des1.InnerText = "好看";
    42             book1.AppendChild(des1);
    43 
    44             XmlElement book2 = doc.CreateElement("Book");
    45             books.AppendChild(book2);
    46 
    47 
    48             XmlElement name2 = doc.CreateElement("Name");
    49             name2.InnerText = "金瓶";
    50             book2.AppendChild(name2);
    51 
    52             XmlElement price2= doc.CreateElement("Price");
    53             price2.InnerText = "10";
    54             book2.AppendChild(price2);
    55 
    56             XmlElement des2 = doc.CreateElement("Des");
    57             des2.InnerText = "好看";
    58             book2.AppendChild(des2);
    59 
    60             doc.Save("Books.xml");
    61             Console.WriteLine("保存成功");
    62             Console.ReadKey();
    63         }
    64     }
    65 }
    View Code
    1 <?xml version="1.0" encoding="utf-8" ?>
    2 
    3 <Books/>
    View Code

    4、创建带属性的XML文档

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Threading.Tasks;
     6 using System.Xml;
     7 namespace _4_创建带属性的XML文档
     8 {
     9     class Program
    10     {
    11         static void Main(string[] args)
    12         {
    13             XmlDocument doc = new XmlDocument();
    14             XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8","yes");
    15             doc.AppendChild(dec);
    16 
    17             XmlElement order = doc.CreateElement("Order");
    18             doc.AppendChild(order);
    19 
    20             XmlElement customerName = doc.CreateElement("CustomerName");
    21             customerName.InnerXml = "<p>我是一个p标签</p>";
    22             order.AppendChild(customerName);
    23 
    24             XmlElement customerNumber = doc.CreateElement("CustomerNumber");
    25             customerNumber.InnerText = "<p>我是一个p标签</p>";
    26             order.AppendChild(customerNumber);
    27 
    28 
    29             XmlElement items = doc.CreateElement("Items");
    30             order.AppendChild(items);
    31 
    32             XmlElement orderItem1 = doc.CreateElement("OrderItem");
    33             //给节点添加属性
    34             orderItem1.SetAttribute("Name", "充气娃娃");
    35             orderItem1.SetAttribute("Count", "10");
    36             items.AppendChild(orderItem1);
    37 
    38             XmlElement orderItem2 = doc.CreateElement("OrderItem");
    39             //给节点添加属性
    40             orderItem2.SetAttribute("Name", "充气娃娃");
    41             orderItem2.SetAttribute("Count", "10");
    42             items.AppendChild(orderItem2);
    43 
    44             XmlElement orderItem3 = doc.CreateElement("OrderItem");
    45             //给节点添加属性
    46             orderItem3.SetAttribute("Name", "充气娃娃");
    47             orderItem3.SetAttribute("Count", "10");
    48             items.AppendChild(orderItem3);
    49 
    50             doc.Save("Order.xml");
    51             Console.WriteLine("保存成功");
    52             Console.ReadKey();
    53 
    54             
    55         }
    56     }
    57 }
    View Code

    5、追击XML

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Threading.Tasks;
     6 using System.Xml;
     7 using System.IO;
     8 namespace _5_追击XML
     9 {
    10     class Program
    11     {
    12         static void Main(string[] args)
    13         {
    14             //追加XML文档
    15             XmlDocument doc = new XmlDocument();
    16             XmlElement books;
    17             if (File.Exists("Books.xml"))
    18             {
    19                 //如果文件存在 加载XML
    20                 doc.Load("Books.xml");
    21                 //获得文件的根节点
    22                 books = doc.DocumentElement;
    23             }
    24             else
    25             {
    26                 //如果文件不存在
    27                 //创建第一行
    28                 XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8", null);
    29                 doc.AppendChild(dec);
    30                 //创建跟节点
    31                 books = doc.CreateElement("Books");
    32                 doc.AppendChild(books);
    33             }
    34             //5、给根节点Books创建子节点
    35             XmlElement book1 = doc.CreateElement("Book");
    36             //将book添加到根节点
    37             books.AppendChild(book1);
    38 
    39 
    40             //6、给Book1添加子节点
    41             XmlElement name1 = doc.CreateElement("Name");
    42             name1.InnerText = "c#开发大全";
    43             book1.AppendChild(name1);
    44 
    45             XmlElement price1 = doc.CreateElement("Price");
    46             price1.InnerText = "110";
    47             book1.AppendChild(price1);
    48 
    49             XmlElement des1 = doc.CreateElement("Des");
    50             des1.InnerText = "看不懂";
    51             book1.AppendChild(des1);
    52 
    53 
    54             doc.Save("Books.xml");
    55             Console.WriteLine("保存成功");
    56             Console.ReadKey();
    57 
    58         }
    59     }
    60 }
    View Code

    6、读取XML文档

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Threading.Tasks;
     6 using System.Xml;
     7 namespace _6_读取XML文档
     8 {
     9     class Program
    10     {
    11         static void Main(string[] args)
    12         {
    13             //XmlDocument doc = new XmlDocument();
    14             ////加载要读取的XML
    15             //doc.Load("Books.xml");
    16 
    17             ////获得根节点
    18             //XmlElement books = doc.DocumentElement;
    19 
    20             ////获得子节点 返回节点的集合
    21             //XmlNodeList xnl = books.ChildNodes;
    22 
    23             //foreach (XmlNode item in xnl)
    24             //{
    25             //    Console.WriteLine(item.InnerText);
    26             //}
    27             //Console.ReadKey();
    28 
    29 
    30             //读取带属性的XML文档
    31 
    32             //XmlDocument doc = new XmlDocument();
    33             //doc.Load("Order.xml");
    34             //Xpath
    35 
    36             //XmlDocument doc = new XmlDocument();
    37             //doc.Load("Order.xml");
    38             //XmlNodeList xnl = doc.SelectNodes("/Order/Items/OrderItem");
    39 
    40             //foreach (XmlNode node in xnl)
    41             //{
    42             //    Console.WriteLine(node.Attributes["Name"].Value);
    43             //    Console.WriteLine(node.Attributes["Count"].Value);
    44             //}
    45             //Console.ReadKey();
    46             //改变属性的值
    47             //XmlDocument doc = new XmlDocument();
    48             //doc.Load("Order.xml");
    49             //XmlNode xn = doc.SelectSingleNode("/Order/Items/OrderItem[@Name='190']");
    50             //xn.Attributes["Count"].Value = "200";
    51             //xn.Attributes["Name"].Value = "颜世伟";
    52             //doc.Save("Order.xml");
    53             //Console.WriteLine("保存成功");
    54 
    55 
    56 
    57 
    58             XmlDocument doc = new XmlDocument();
    59 
    60             doc.Load("Order.xml");
    61 
    62             XmlNode xn = doc.SelectSingleNode("/Order/Items");
    63 
    64             xn.RemoveAll();
    65             doc.Save("Order.xml");
    66             Console.WriteLine("删除成功");
    67             Console.ReadKey();
    68 
    69             ////获得文档的根节点
    70             //XmlElement order = doc.DocumentElement;
    71             //XmlNodeList xnl = order.ChildNodes;
    72             //foreach (XmlNode item in xnl)
    73             //{
    74             //    ////如果不是Items 就continue
    75             //    //if (item[])
    76             //    //{
    77             //    //    continue;
    78             //    //}
    79             //    Console.WriteLine(item.Attributes["Name"].Value);
    80             //    Console.WriteLine(item.Attributes["Count"].Value);
    81             //}
    82             Console.ReadKey();
    83         }
    84     }
    85 }
    View Code

    7、为什么要使用委托

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Threading.Tasks;
     6 
     7 namespace _7_为什么要使用委托
     8 {
     9     public delegate string DelProStr(string name);
    10     class Program
    11     {
    12         static void Main(string[] args)
    13         {
    14             //三个需求
    15             //1、将一个字符串数组中每个元素都转换成大写
    16             //2、将一个字符串数组中每个元素都转换成小写
    17             //3、将一个字符串数组中每个元素两边都加上 双引号
    18             string[] names = { "abCDefG", "HIJKlmnOP", "QRsTuvW", "XyZ" };
    19             //ProStToUpper(names);
    20             //ProStrToLower(names);
    21             // ProStrSYH(names);
    22 
    23             ProStr(names, delegate(string name)
    24             {
    25                 return """ + name + """;
    26             });
    27             for (int i = 0; i < names.Length; i++)
    28             {
    29                 Console.WriteLine(names[i]);
    30             }
    31             Console.ReadKey();
    32         }
    33 
    34 
    35         public static void ProStr(string[] name, DelProStr del)
    36         {
    37             for (int i = 0; i < name.Length; i++)
    38             {
    39                 name[i] = del(name[i]);
    40             }
    41         }
    42 
    43         //public static string StrToUpper(string name)
    44         //{
    45         //    return name.ToUpper();
    46         //}
    47 
    48         //public static string StrToLower(string name)
    49         //{
    50         //    return name.ToLower();
    51         //}
    52 
    53         //public static string StrSYH(string name)
    54         //{
    55         //    return """ + name + """;
    56         //}
    57 
    58 
    59         //public static void ProStToUpper(string[] name)
    60         //{
    61         //    for (int i = 0; i < name.Length; i++)
    62         //    {
    63         //        name[i] = name[i].ToUpper();
    64         //    }
    65         //}
    66         //public static void ProStrToLower(string[] name)
    67         //{
    68         //    for (int i = 0; i < name.Length; i++)
    69         //    {
    70         //        name[i] = name[i].ToLower();
    71         //    }
    72         //}
    73         //public static void ProStrSYH(string[] names)
    74         //{
    75         //    for (int i = 0; i < names.Length; i++)
    76         //    {
    77         //        names[i] = """ + names[i] + """;
    78         //    }
    79         //}
    80 
    81 
    82     }
    83 }
    View Code

    8、委托概念

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Threading;
     6 using System.Threading.Tasks;
     7 
     8 namespace _8_委托概念
     9 {
    10     //声明一个委托指向一个函数
    11     public delegate void DelSayHi(string name);
    12     class Program
    13     {
    14         static void Main(string[] args)
    15         {
    16             //DelSayHi del = SayHiEnglish;//new DelSayHi(SayHiEnglish);
    17             //del("张三");
    18             //Console.ReadKey();
    19 
    20             //Test("张三", SayHiChinese);
    21             //Test("李四", SayHiEnglish);
    22             //Console.ReadKey();
    23         }
    24 
    25         public static void Test(string name,DelSayHi del)
    26         { 
    27             //调用
    28             del(name);
    29         }
    30 
    31         public static void SayHiChinese(string name)
    32         {
    33             Console.WriteLine("吃了么?" + name);
    34         }
    35         public static void SayHiEnglish(string name)
    36         {
    37             Console.WriteLine("Nice to meet you" + name);
    38         }
    39     }
    40 }
    View Code

    9、匿名函数

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Threading.Tasks;
     6 
     7 namespace _9_匿名函数
     8 {
     9     public delegate void DelSayHi(string name);
    10     class Program
    11     {
    12         static void Main(string[] args)
    13         {
    14             //SayHi("张三", SayHiChinese);
    15             //DelSayHi del = delegate(string name)
    16             //{
    17             //    Console.WriteLine("你好" + name);
    18             //};
    19             //del("张三");
    20 
    21 
    22             //lamda表达式  => goes to
    23             DelSayHi del = (string name) => { Console.WriteLine("你好" + name); };
    24             del("张三");
    25             Console.ReadKey();
    26         }
    27 
    28         //public static void SayHi(string name,DelSayHi del)
    29         //{
    30         //    del(name);
    31         //}
    32 
    33         //public static void SayHiChinese(string name)
    34         //{
    35         //    Console.WriteLine("你好"+name);
    36         //}
    37         //public static void SayHiEnglish(string name)
    38         //{
    39         //    Console.WriteLine("Hello"+name);
    40         //}
    41     }
    42 }
    View Code

    10求数组的最大值

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Threading.Tasks;
     6 
     7 namespace _10求数组的最大值
     8 {
     9     public delegate int DelCompare(object o1, object o2);
    10     class Program
    11     {
    12         static void Main(string[] args)
    13         {
    14             object[] o = {"abc","fdsfdsds","fdsfdsfdsfdsfdsfds","fdsfds"};
    15             //object result = GetMax(o, Compare2);
    16             //object result = GetMax(o, delegate(object o1, object o2) {
    17             //    string s1 = (string)o1;
    18             //    string s2 = (string)o2;
    19             //    return s1.Length - s2.Length;
    20             //});
    21 
    22             object result = GetMax(o, (object o1,object o2) => {
    23                 string s1 = (string)o1;
    24                 string s2 = (string)o2;
    25                 return s1.Length - s2.Length;
    26             });
    27             Console.WriteLine(result);
    28             Console.ReadKey();
    29         }
    30 
    31         public static object GetMax(object[] nums, DelCompare del)
    32         {
    33             object max = nums[0];
    34             for (int i = 0; i < nums.Length; i++)
    35             {
    36                 //要传一个比较的方法
    37                 if (del(max, nums[i]) < 0)
    38                 {
    39                     max = nums[i];
    40                 }
    41             }
    42             return max;
    43         }
    44 
    45 
    46         //public static int Compare1(object o1, object o2)
    47         //{
    48         //    int n1 = (int)o1;
    49         //    int n2 = (int)o2;
    50         //    return n1 - n2;
    51         //}
    52 
    53         //public static int Compare2(object o1, object o2)
    54         //{
    55         //    string s1 = (string)o1;
    56         //    string s2 = (string)o2;
    57         //    return s1.Length - s2.Length;
    58         //}
    59 
    60         //public static string GetMax(string[] names)
    61         //{
    62         //    string max = names[0];
    63         //    for (int i = 0; i < names.Length; i++)
    64         //    {
    65         //        if (max.Length < names[i].Length)
    66         //        {
    67         //            max = names[i];
    68         //        }
    69         //    }
    70         //    return max;
    71         //}
    72     }
    73 }
    View Code

    11、泛型委托

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Threading.Tasks;
     6 
     7 namespace _11_泛型委托
     8 {
     9     public delegate int DelCompare<T>(T t1, T t2);
    10     // public delegate int DelCompare(object o1, object o2);
    11     class Program
    12     {
    13         static void Main(string[] args)
    14         {
    15             int[] nums = { 1, 2, 3, 4, 5 };
    16             int max = GetMax<int>(nums, Compare1);
    17             Console.WriteLine(max);
    18 
    19             string[] names = { "abcdefg", "fdsfds", "fdsfdsfdsfdsfdsfdsfdsfsd" };
    20             string max1 = GetMax<string>(names, (string s1, string s2) =>
    21             {
    22                 return s1.Length - s2.Length;
    23             });
    24             Console.WriteLine(max1);
    25             Console.ReadKey();
    26         }
    27         public static T GetMax<T>(T[] nums, DelCompare<T> del)
    28         {
    29             T max = nums[0];
    30             for (int i = 0; i < nums.Length; i++)
    31             {
    32                 //要传一个比较的方法
    33                 if (del(max, nums[i]) < 0)
    34                 {
    35                     max = nums[i];
    36                 }
    37             }
    38             return max;
    39         }
    40 
    41 
    42         public static int Compare1(int n1, int n2)
    43         {
    44             return n1 - n2;
    45         }
    46     }
    47 }
    View Code

    12、lamda表达式

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Threading.Tasks;
     6 
     7 namespace _12_lamda表达式
     8 {
     9 
    10     public delegate void DelOne();
    11     public delegate void DelTwo(string name);
    12     public delegate string DelThree(string name);
    13     class Program
    14     {
    15         static void Main(string[] args)
    16         {
    17             DelOne del = () => { };// delegate() { };
    18 
    19             DelTwo del2 = (string name) => { };//delegate(string name) { };
    20 
    21             DelThree del3 = (string name) => { return name; };//delegate(string name) { return name; };
    22 
    23 
    24             List<int> list = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
    25             list.RemoveAll(n => n > 4);
    26             foreach (var item in list)
    27             {
    28                 Console.WriteLine(item);
    29             }
    30             Console.ReadKey();
    31         }
    32     }
    33 }
    View Code

    13、使用委托来进行窗体传值

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Threading.Tasks;
     6 
     7 namespace _13_使用委托来进行窗体传值
     8 {
     9     class Program
    10     {
    11         static void Main(string[] args)
    12         {
    13         }
    14     }
    15 }
    View Code

    14、窗体传值

     1 using System;
     2 using System.Collections.Generic;
     3 using System.ComponentModel;
     4 using System.Data;
     5 using System.Drawing;
     6 using System.Linq;
     7 using System.Text;
     8 using System.Threading.Tasks;
     9 using System.Windows.Forms;
    10 
    11 namespace _14_窗体传值
    12 {
    13     public partial class Form1 : Form
    14     {
    15         public Form1()
    16         {
    17             InitializeComponent();
    18         }
    19 
    20         private void button1_Click(object sender, EventArgs e)
    21         {
    22             Form2 frm2 = new Form2(ShowMsg);
    23             frm2.Show();
    24         }
    25 
    26 
    27         void ShowMsg(string str)
    28         {
    29             label1.Text = str;
    30         }
    31     }
    32 }
    View Code
     1 namespace _14_窗体传值
     2 {
     3     partial class Form1
     4     {
     5         /// <summary>
     6         /// 必需的设计器变量。
     7         /// </summary>
     8         private System.ComponentModel.IContainer components = null;
     9 
    10         /// <summary>
    11         /// 清理所有正在使用的资源。
    12         /// </summary>
    13         /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
    14         protected override void Dispose(bool disposing)
    15         {
    16             if (disposing && (components != null))
    17             {
    18                 components.Dispose();
    19             }
    20             base.Dispose(disposing);
    21         }
    22 
    23         #region Windows 窗体设计器生成的代码
    24 
    25         /// <summary>
    26         /// 设计器支持所需的方法 - 不要
    27         /// 使用代码编辑器修改此方法的内容。
    28         /// </summary>
    29         private void InitializeComponent()
    30         {
    31             this.button1 = new System.Windows.Forms.Button();
    32             this.label1 = new System.Windows.Forms.Label();
    33             this.SuspendLayout();
    34             // 
    35             // button1
    36             // 
    37             this.button1.Location = new System.Drawing.Point(431, 85);
    38             this.button1.Name = "button1";
    39             this.button1.Size = new System.Drawing.Size(75, 23);
    40             this.button1.TabIndex = 0;
    41             this.button1.Text = "button1";
    42             this.button1.UseVisualStyleBackColor = true;
    43             this.button1.Click += new System.EventHandler(this.button1_Click);
    44             // 
    45             // label1
    46             // 
    47             this.label1.AutoSize = true;
    48             this.label1.Location = new System.Drawing.Point(137, 95);
    49             this.label1.Name = "label1";
    50             this.label1.Size = new System.Drawing.Size(41, 12);
    51             this.label1.TabIndex = 1;
    52             this.label1.Text = "label1";
    53             // 
    54             // Form1
    55             // 
    56             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
    57             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    58             this.ClientSize = new System.Drawing.Size(628, 400);
    59             this.Controls.Add(this.label1);
    60             this.Controls.Add(this.button1);
    61             this.Name = "Form1";
    62             this.Text = "Form1";
    63             this.ResumeLayout(false);
    64             this.PerformLayout();
    65 
    66         }
    67 
    68         #endregion
    69 
    70         private System.Windows.Forms.Button button1;
    71         private System.Windows.Forms.Label label1;
    72     }
    73 }
    View Code
     1 using System;
     2 using System.Collections.Generic;
     3 using System.ComponentModel;
     4 using System.Data;
     5 using System.Drawing;
     6 using System.Linq;
     7 using System.Text;
     8 using System.Threading.Tasks;
     9 using System.Windows.Forms;
    10 
    11 namespace _14_窗体传值
    12 {
    13 
    14     //声明一个委托
    15     public delegate void DelTest(string str);
    16     public partial class Form2 : Form
    17     {
    18         public DelTest _del;
    19         public Form2(DelTest del)
    20         {
    21             this._del = del;
    22             InitializeComponent();
    23         }
    24 
    25         private void button1_Click(object sender, EventArgs e)
    26         {
    27             _del(textBox1.Text);
    28         }
    29     }
    30 }
    View Code
     1 namespace _14_窗体传值
     2 {
     3     partial class Form2
     4     {
     5         /// <summary>
     6         /// Required designer variable.
     7         /// </summary>
     8         private System.ComponentModel.IContainer components = null;
     9 
    10         /// <summary>
    11         /// Clean up any resources being used.
    12         /// </summary>
    13         /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    14         protected override void Dispose(bool disposing)
    15         {
    16             if (disposing && (components != null))
    17             {
    18                 components.Dispose();
    19             }
    20             base.Dispose(disposing);
    21         }
    22 
    23         #region Windows Form Designer generated code
    24 
    25         /// <summary>
    26         /// Required method for Designer support - do not modify
    27         /// the contents of this method with the code editor.
    28         /// </summary>
    29         private void InitializeComponent()
    30         {
    31             this.button1 = new System.Windows.Forms.Button();
    32             this.textBox1 = new System.Windows.Forms.TextBox();
    33             this.SuspendLayout();
    34             // 
    35             // button1
    36             // 
    37             this.button1.Location = new System.Drawing.Point(346, 140);
    38             this.button1.Name = "button1";
    39             this.button1.Size = new System.Drawing.Size(75, 23);
    40             this.button1.TabIndex = 0;
    41             this.button1.Text = "button1";
    42             this.button1.UseVisualStyleBackColor = true;
    43             this.button1.Click += new System.EventHandler(this.button1_Click);
    44             // 
    45             // textBox1
    46             // 
    47             this.textBox1.Location = new System.Drawing.Point(189, 140);
    48             this.textBox1.Name = "textBox1";
    49             this.textBox1.Size = new System.Drawing.Size(100, 21);
    50             this.textBox1.TabIndex = 1;
    51             // 
    52             // Form2
    53             // 
    54             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
    55             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    56             this.ClientSize = new System.Drawing.Size(485, 388);
    57             this.Controls.Add(this.textBox1);
    58             this.Controls.Add(this.button1);
    59             this.Name = "Form2";
    60             this.Text = "Form2";
    61             this.ResumeLayout(false);
    62             this.PerformLayout();
    63 
    64         }
    65 
    66         #endregion
    67 
    68         private System.Windows.Forms.Button button1;
    69         private System.Windows.Forms.TextBox textBox1;
    70     }
    71 }
    View Code
     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Threading.Tasks;
     5 using System.Windows.Forms;
     6 
     7 namespace _14_窗体传值
     8 {
     9     static class Program
    10     {
    11         /// <summary>
    12         /// 应用程序的主入口点。
    13         /// </summary>
    14         [STAThread]
    15         static void Main()
    16         {
    17             Application.EnableVisualStyles();
    18             Application.SetCompatibleTextRenderingDefault(false);
    19             Application.Run(new Form1());
    20         }
    21     }
    22 }
    View Code

    15多播委托

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Threading.Tasks;
     6 
     7 namespace _15多播委托
     8 {
     9     public delegate void DelTest();
    10     class Program
    11     {
    12         static void Main(string[] args)
    13         {
    14             DelTest del = T1;
    15             del += T2;
    16             del += T3;
    17             del+= T4;
    18             del -= T3;
    19             del -= T1;
    20             del();
    21             Console.ReadKey();
    22         }
    23 
    24         public static void T1()
    25         {
    26             Console.WriteLine("我是T1");
    27         }
    28         public static void T2()
    29         {
    30             Console.WriteLine("我是T2");
    31         }
    32 
    33         public static void T3()
    34         {
    35             Console.WriteLine("我是T3");
    36         }
    37         public static void T4()
    38         {
    39             Console.WriteLine("我是T4");
    40         }
    41     }
    42 }
    View Code
  • 相关阅读:
    [NOI Online 2021 提高组] 愤怒的小N
    [NOI Online 2021 提高组] 积木小赛
    「2020-2021 集训队作业」Yet Another Permutation Problem
    无标号有根树/无根树 计数
    无向图的 三元环
    有标号二分图计数
    有标号荒漠计数
    「雅礼集训 2018 Day8」B
    CF708E Student's Camp
    清华集训 2016 选做
  • 原文地址:https://www.cnblogs.com/liuslayer/p/4713756.html
Copyright © 2020-2023  润新知