手机
当前位置:查字典教程网 >编程开发 >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# datetime方法应用介绍

深入IComparable与IComparer的排序实例详解

浅析泛型类接口定义

c#剪切板操作的简单实例

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

c# 随机函数的使用详解

C# 字符串多行显示/文本换行以textbox为例讲解

C# 委托(delegate) 的小例子

C#生成不重复随机数列表实例

C#实现协同过滤算法的实例代码

精品推荐
分类导航