您的位置:首页 > 编程语言 > C#

c#委托把方法当成参数(实例讲解)

2015-05-29 10:59 411 查看
本篇文章主要是对c#委托把方法当成参数的实例代码进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助

静态方法代理:

复制代码代码如下:

public delegate void DoGreeting(string name);

class Program

{

[STAThread]

static void Main(string[] args)

{

//方法名当成参数传给委托类型调用

MarkGreeting("张三", GreetingEnglish);

MarkGreeting("李四", GreetingChinese);

}

/// <summary>

/// 委托(代理的方法)

/// </summary>

/// <param name="name"></param>

/// <param name="markGreeting"></param>

private static void MarkGreeting(string name, DoGreeting markGreeting)

{

markGreeting(name);

}

/// <summary>

/// 用英文打招呼

/// </summary>

/// <param name="name"></param>

private static void GreetingEnglish(string name)

{

Console.WriteLine(name+"hello!");

}

/// <summary>

/// 用中文打招呼

/// </summary>

/// <param name="name"></param>

private static void GreetingChinese(string name)

{

Console.WriteLine(name+"你好!");

}

}

实例方法代理:

复制代码代码如下:

public delegate void DoGreeting(string name);

public class Greeting

{

/// <summary>

/// 委托(代理的方法)

/// </summary>

/// <param name="name"></param>

/// <param name="markGreeting"></param>

public void MarkGreeting(string name, DoGreeting markGreeting)

{

markGreeting(name);

}

/// <summary>

/// 用英文打招呼

/// </summary>

/// <param name="name"></param>

public void GreetingEnglish(string name)

{

Console.WriteLine(name + "hello!");

}

/// <summary>

/// 用中文打招呼

/// </summary>

/// <param name="name"></param>

public void GreetingChinese(string name)

{

Console.WriteLine(name + "你好!");

}

}

class Program

{

[STAThread]

static void Main(string[] args)

{

Greeting greetingObj = new Greeting();

greetingObj.MarkGreeting("张三", greetingObj.GreetingEnglish);

greetingObj.MarkGreeting("李四", greetingObj.GreetingChinese);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: