asp.net 委托用法
using System;
namespace WeiTuo
{
public delegate void MakeGreeting(string name);
class Program
{
public static void EnglishGreeting(string name)
{
Console.WriteLine("morning:"+ name);
}
public static void ChineseGreeting(string name)
{
Console.WriteLine("早上好:"+name);
}
public static void GreetPeople(string name, MakeGreeting makegreet)
{
makegreet(name);
}
static void Main(string[] args)
{
//GreetPeople("Dom",EnglishGreeting);
//GreetPeople("于海涛",ChineseGreeting);
//MakeGreeting delegate1, delegate2;
//delegate1 = EnglishGreeting;
//delegate2 = ChineseGreeting;
//GreetPeople("Dom", delegate1);
//GreetPeople("于海涛", delegate2);
//将多个方法绑定到同一个委托
//MakeGreeting delegate1;
//delegate1 = EnglishGreeting;
//delegate1 += ChineseGreeting;
//GreetPeople("于海涛", delegate1);
//通过委托直接调用方法
//MakeGreeting delegate1;
//delegate1 = EnglishGreeting;
//delegate1 += ChineseGreeting;
//delegate1("于海涛");
//MakeGreeting delegate1 = new MakeGreeting(EnglishGreeting);
//delegate1 += ChineseGreeting;
//delegate1("于海涛");
//取消对ChineseGreeting方法的绑定
//delegate1 -= ChineseGreeting;
//delegate1("Dom");
}
}
}
public delegate void WeiTuo2(); public delegate void WeiTuo3(string str); class Program { static void Main(string[] args) { WeiTuo2 weituo = new WeiTuo2(ShuChu); weituo.Invoke(); WeiTuo3 wt = new WeiTuo3(ShuChu); wt.Invoke("带参数"); Console.ReadLine(); } static void ShuChu(string str) { Console.WriteLine(str); } static void ShuChu() { Console.WriteLine("无参数"); } }
说的比较直白点,委托其实就是将方法作为方法的参数。
浙公网安备 33010602011771号