-- 7、委托语法
泛型委托 :
// 声明一个委托指向函数
public delegate void DelSayHi(string name)
main :
DelSayHi del=new DelSayHi(SayHiEnglish);
del("张三");
console.ReadKey();
public static void SayHiEnglish(string name )
{
console.write("SayHiEnglish");
}
public static void SayHiChinese(string name )
{
console.write("SayHiChinese");
}
-- 8、匿名函数
// 声明一个委托指向函数
public delegate void DelProStr(string name)
main :
DelSayHi del=new DelSayHi(ProStToUpper);
del("张三");
console.ReadKey();
public static void ProStToUpper(string[] name ,DelProStr del)
{
for(int i=0;i<name.Length;i++)
{
name[i]=del(name[i]);
}
}
public static void ProStToLower(string[] name )
{
for(int i=0;i<name.Length;i++)
{
name[i]=name[i].ToLower();
}
}
public static void ProStToSYH(string[] name )
{
for(int i=0;i<name.Length;i++)
{
name[i]=name[i].+"\\";
}
}
-- 11、窗体传值
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2(ShowMsg);
frm2.Show();
}
void ShowMsg(string str)
{
label1.Text = str;
}
}
}
--
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2(ShowMsg);
frm2.Show();
}
void ShowMsg(string str)
{
label1.Text = str;
}
}
}
-- 12、多播委托
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
public delegate void DelTest();
class Program
{
static void Main(string[] args)
{
DelTest del = T1;
del();
del += T2;
Console.ReadKey();
}
public static void T1()
{
Console.WriteLine("T1");
}
public static void T2()
{
Console.WriteLine("T2");
}
public static void T3()
{
Console.WriteLine("T3");
}
public static void T4()
{
Console.WriteLine("T4");
}
}
}