c#委托把方法当成参数(实例讲解)_C#教程-查字典教程网
c#委托把方法当成参数(实例讲解)
c#委托把方法当成参数(实例讲解)
发布时间:2016-12-28 来源:查字典编辑
摘要:静态方法代理:复制代码代码如下: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#教程学习
    编程开发子分类