class Program
{
static void Main(string[] args)
{
Test test = new Test(); //实例一个Test类的test对象
string s = "调用委托"; //定义一个字符串
DeShow ds = new DeShow(test.Show); //实例一个委托ds对象
ds += Show1; //使用运算符"+="添加Show1方法到委托对象中
ds(s); //调用委托
MethodShow(test.Show); //调用包含委托为参数的方法,并且把test.Show方法传入
Console.ReadKey();
/*结果:
调用委托
字符串的长度:4
显示一个普通方法!
----------------------------------
字符串的长度:34
-----------委托作为参数-----------
字符串的长度:28
----------------------------------
字符串的长度:34
*/
}
/// <summary>
/// 定义一个包含委托为参数的方法
/// </summary>
static void MethodShow(DeShow deShow) //传入字符串的方法,且委托作为参数
{
deShow("----------------------------------");
deShow("-----------委托作为参数-----------");
deShow("----------------------------------");
}
static void Show1(string str1)
{
Console.WriteLine("显示一个普通方法!");
}
}
public class Test
{
public void Show(string Msg) //显示方法
{
Console.WriteLine(Msg);
Console.WriteLine("字符串的长度:{0}",Msg.Length);
}
}
public delegate void DeShow(string str); //定义一个委托类 |