C#声明、实例化和使用委托

// 声明一个委托.
delegate void Del(string str);

// 声明一个与委托签名相同的方法.
static void Notify(string name)
{
    Console.WriteLine("Notification received for: {0}", name);
}
// C# 1.0 和更高版本中创建一个Del委托实例.
Del del1 = new Del(Notify);
// C#2.0提供了一种更简单的方法来声明Del的实例
Del del2 = Notify;
// 在 C# 2.0 和更高版本中,还可以使用匿名方法来声明和初始化委托.
Del del3 = delegate(string name)
    { Console.WriteLine("Notification received for: {0}", name); };
// 在 C# 3.0 和更高版本中,,还可以通过使用lambda表达式来实例化Del。
Del del4 = name =>  { Console.WriteLine("Notification received for: {0}", name); };
时间: 2024-08-02 06:59:31

C#声明、实例化和使用委托的相关文章

c#委托声明实例化与调用

系统访问数据或调用方法有两种操作方式:一种是通过名称访问或调用,另一种是通过所在的内存地址来访问调用.为了系统的安全与稳定,NET Framework的CLR库不允许程序通过指针来直接操作内存中数据或方法,而是通过托管机制来访问内存中数据或调用内存中的方法.委托就是C#提供的一种以托管机制调用方法的特殊数据类型,其作用于房屋租凭中介机构类似. 下面我们要所的主要围绕以下三点 //1.定义委托 //2.委托的实例化 //3.委托的调用,实际上是将委托指向已经实现的某个方法 //注意:调用的方法必须

C# 声明、实例化和使用委托的几种方法

 1.在 C# 1.0 及更高版本中,可以按以下示例所示声明委托. // Declare a delegate. delegate void Del(string str); // Declare a method with the same signature as the delegate. static void Notify(string name) { Console.WriteLine("Notification received for: {0}", name); } /

委托为什么可以实例化

委托为什么可以和字符串一样实例化 2012-04-10 17:52 menotplayboy | 浏览 306 次 2012-04-10 23:37 #“谁是脑力达人”之地区分类鏖战ing!# 提问者采纳 委托可以实例化啊.首先你的确可以把委托看成一个类,因此委托可以实例化.一般来说委托的整个流程是1.声明对应函数的委托2.将委托实例化3.然后使用这个委托实例但是在现在的.net版本中,微软帮我们省略了委托实例 这个步骤,让我们可以直接传递函数名称. 举个例子:被委托的函数是static voi

Delegate(委托)

在前面lambda章节中稍微提了一下委托,今天这章就让我们来深究一下委托. 委托的本质是一种类,他是继承MulticastDelegate类的. 而声明委托的关键字的delegate,如:public delegate void NoReturnNoParaOutClass(); 但是刚才也讲了委托一种类,那按照类的声明,我们应该可以这样声明一个委托. public class  NoReturnNoParaOutClass: System.MulticastDelegate { } 只不过由于

[转载]C#委托和事件(Delegate、Event、EventHandler、EventArgs)

原文链接:http://blog.csdn.net/zwj7612356/article/details/8272520 14.1.委托 当要把方法作为实参传送给其他方法的形参时,形参需要使用委托.委托是一个类型,是一个函数指针类型,这个类型将该委托的实例化对象所能指向的函数的细节封装起来了,即规定了所能指向的函数的签名,也就是限制了所能指向的函数的参数和返回值.当实例化委托的时候,委托对象会指向某一个匹配的函数,实质就是将函数的地址赋值给了该委托的对象,然后就可以通过该委托对象来调用所指向的函

C#语法之委托和事件

从大学就开始做C#这块,也做C#几年了,最近又从ios转回.Net,继续做C#,之前也没有写博客的习惯,写博客也是从我做ios的时候开始的,现在既然又做回了.net,那就写点关于.Net的博客,可能在大牛眼里这些都是简单基础的,不过回过头看我当时初学的时候觉得委托事件是不容易理解的,我这里也是想着联系着OC,两者有比较的学习下.毕竟都是面向对象语言,思想是相通的. 委托在OC中类似block,都是指向一个函数,其实他没和C++的函数指针类似.但委托还是和函数指针不太一样,委托是完全面向对象的,是

理解委托类型

怕大家看了觉得乱七八糟不知道讲什么,先一句话描述下:如标题,在C#中委托是一种类型,如class一样也需要声明,定义,赋值,并与class在同一个层面 再介绍之前先看下相关内容的定义(我不是咬文嚼字,个人以为,有些东西的定义一定要没明白,不能含糊,不然只会是似懂非懂) delegate :(关键字->类型->引用类型[class,interface等等这些都是引用类型关键字]) delegate 是一种可用于封装命名或匿名方法的引用类型.(并不是所有的引用类型都是class) 是一种定义方法签

.NET中那些所谓的新语法之三:系统预定义委托与Lambda表达式

开篇:在上一篇中,我们了解了匿名类.匿名方法与扩展方法等所谓的新语法,这一篇我们继续征程,看看系统预定义委托(Action/Func/Predicate)和超爱的Lambda表达式.为了方便码农们,.Net基类库针对实际开发中最常用的情形提供了几个预定义好的委托,这些委托可以直接使用,无需再重头定义一个自己的委托类型.预定义委托在.Net基类库中使用的比较广泛,比如在Lambda表达式和并行计算中都大量地使用,需要我们予以关注起来! /* 新语法索引 */ 1.自动属性 Auto-Impleme

委托 详细

delegate 是表示对具有特定参数列表和返回类型的方法的引用的类型. 在实例化委托时,你可以将其实例与任何具有兼容签名和返回类型的方法相关联. 你可以通过委托实例调用方法. 委托用于将方法作为参数传递给其他方法. 事件处理程序就是通过委托调用的方法. 你可以创建一个自定义方法,当发生特定事件时,某个类(如 Windows 控件)就可以调用你的方法. 下面的示例演示了一个委托声明: C# public delegate int PerformCalculation(int x, int y);