手机
当前位置:查字典教程网 >编程开发 >C#教程 >c#委托把方法当成参数(实例讲解)
c#委托把方法当成参数(实例讲解)
摘要:静态方法代理:复制代码代码如下:publicdelegatevoidDoGreeting(stringname);classProgram{...

静态方法代理:

复制代码 代码如下:

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);

}

【c#委托把方法当成参数(实例讲解)】相关文章:

C#委托初级使用的实例代码

C#用Lambda和委托实现模板方法

C# 实现简单打印的实例代码

c# 方法可变数量的参数

基于c# 接口的实例详解

探讨:如何使用委托,匿名方法对集合进行万能排序

解析C#中委托的同步调用与异步调用(实例详解)

c#之利用API函数实现动画窗体的方法详解

c# 委托和事件实例学习

C#词法分析器之转换DFA详解

精品推荐
分类导航