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

C#学习笔记之委托的各种写法

2016-07-05 14:01 281 查看
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 委托的概念
{
// 声明一个委托指向一个方法;
// 委托必须和方法有同样的参数和返回值。
public delegate void DelSayHi(string name);

class Program
{
static void Main(string[] args)
{
/// <summary>
/// 委托是一个类型安全的对象,他指向程序中将被调用的一个方法或多个方法。通俗的说,委托就是一个函数指针,
/// 是一个可以引用方法的对象,当创建一个委托,也就创建一个引用方法的对象,进而可以调用那个方法。即委托
/// 可以调用它所指的方法。
///
/// 1、定义委托类型:
///   [访问修饰符] delegate 返回类型 委托名(形参);
/// 2、声明委托对象:
///   委托名 委托对象名;
/// 3、创建委托对象,绑定方法:
///     写法1:委托名 委托对象名 = 方法名;
///     写法2:委托名 委托对象名 = new 委托名(方法名);
/// 4、使用委托调用方法:
///   委托对象名(实参);
///
/// 委托注意事项:
/// 1、委托和方法必须具有相同的参数和返回值;
/// 2、委托可以调用多个方法;
/// </summary>

// 委托的写法:

// 写法1:
//DelSayHi del = SayHello;
//del("Jack");

// 写法2:
//DelSayHi del = new DelSayHi(SayHello);
//del("Lucy");

// 写法3:匿名函数
DelSayHi del = delegate(string name)
{
//string strName = name;
//Console.WriteLine("Hello," + strName);
SayHello(name);
};
del("Tom");   // 使用委托调用方法

// 写法4:lamda表达式
//DelSayHi del = (string name) => {
//    //string strName = name;
//    //Console.WriteLine("Hello," + strName);
//    SayHello(name);
//};
//del("Ken");

Console.ReadKey();
}

/// <summary>
/// 委托要调用的方法
/// </summary>
/// <param name="name"></param>
public static void SayHello(string name)
{
Console.WriteLine("Hello," + name);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: