.NET 委托

前端之家收集整理的这篇文章主要介绍了.NET 委托前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

定义一个委托:

public delegate void Del( string message); 

构造委托对象时,通常提供委托将包装的方法名称或使用匿名方法。实例化委托后,委托将把对它进行的方法调用传递给方法调用方传递给委托的参数被传递给方法,来自方法的返回值(如果有)由委托返回给调用方。这被称为调用委托。可以将一个实例化的委托视为被包装的方法本身来调用该委托。

例如:// Create a method for a delegate.

public static void DelegateMethod(string message)

{

System.Console.WriteLine(message);

}

// Instantiate the delegate.

Del handler = DelegateMethod;

// Call the delegate.

handler("Hello World");

委托(Delegate):

是.NET Framework对C#和VB.NET等面向对象编程语言特性的一个重要扩充。
委托是.NET中的一些重要技术,比如事件、异步调用和多线程开发的技术基础。
委托在.NET开发中应用极广,每一名.NET软件工程师都必须了解委托。
1.委托可以看成是一个方法的“容器”,将某一具体的方法“装入”后,就可以把它当成方法一样调用
2.一个委托类型的变量,可以引用任何一个满足其要求的方法。从这点意义上看,委托类似于C语言中的“函数指针”。
由于委托变量可以引用一个方法调用列表,并且具有可以被随时改变所引用的方法调用列表的特性,这就使委托在开发中大有用处,可以解决许多实际问题。

1.定义委托类型
2.定义一个或多个符合委托类型的方法
3.定义委托类型的变量
4.将第2步定义的方法引用“挂接”到第3步定义的变量,以形成一个“方法调用列表”。
5.通过委托变量“间接”调用方法调用列表。
定义委托:
public delegate int AddDelegate(int i,int j );
使用匿名方法定义委托变量
AddDelegate del = delegate(int i,int j){return i+ j;};

Console.WriteLine(del(100,200));
匿名方法其实是将方法定义与委托变量赋值两个步骤合在一起。
委托类型可作为方法形参
public static void invokeDelegate(AddDelegate del,int i,int j)
{Console.WriteLine( del(i,j) );}
匿名方法可直接作为方法的实参
invokeDelegate(delegate(int i,int j){return i+ j;},100,200);

多路广播委托:http://msdn.microsoft.com/zh-cn/library/ms173175.aspx


//定义泛型委托

  //定义泛型委托
 public delegate T MyGenericDelegate<T>(T obj);

 class Program
 {

 static void Main(string[] args)
 {
 //使用匿名方法给泛型委托变量赋值
 MyGenericDelegate<int> del = delegate(int vlaue)
 {
 return vlaue * 2;
 };
 MyGenericDelegate<string> add = delegate(string content)
 {
 return content;
 };

 //调用泛型委托变量引用的匿名方法
 Console.WriteLine(del(100));
 Console.WriteLine(add("Hello World!"));
 Console.ReadKey();
 }
 }
匿名方法小结在.NET 2.0时代,匿名方法主要是作为简化代码的手段而引入到C# 2.0语法特性中的。 然而,也许设计者事先也并没有预想到,这一原先仅出现在特定编程语言中的特性,却成为了.NET 3.5中的重要技术——LINQ的基础之一。 委托是一种方法引用类型。一旦为委托分配了方法,委托将与方法具有相同的行为。 委托方法的使用和其他方法一样,同样具有返回值和参数。与委托的签名(由返回类型和参数组成)匹配的任何方法都可以分配给该委托。 这样就可以通过编程方式改变方法调用,还可以向现有类中插入新代码。只要知道委托的签名,便可以分配自己的委托方法。 再次提醒:委托是一项重要的编程技能,所有的.NET开发者都必须掌握它。否则,将在开发.NET应用程序的过程中遇到很多困难。 MSDN中介绍委托:http://msdn.microsoft.com/zh-cn/library/ms173171.aspx 文中部分内容转自: 金旭亮面向对象编程系列 原文链接:https://www.f2er.com/vb/260704.html

猜你在找的VB相关文章