如果你想创建自定义委托,你可以使用小写的delegate关键字。
您可以对实际的Delegate类做什么?这有什么好处呢?我不明白到底有什么不同。
发布于 2009-04-22 20:27:01
来自http://msdn.microsoft.com/en-us/library/system.delegate.aspx
Delegate类是委托类型的基类。但是,只有系统和编译器才能显式地从Delegate类或MulticastDelegate类派生。也不允许从委托类型派生新类型。Delegate类不被视为委托类型;它是用于派生委托类型的类。
大多数语言实现delegate关键字,并且这些语言的编译器能够从MulticastDelegate类派生;因此,用户应该使用该语言提供的delegate关键字。
发布于 2009-04-22 20:30:39
delegate关键字是让编译器为你做一些魔术。当您使用自定义签名声明新委托时,
所以现在当你调用delObject(args)时,编译器会把它翻译成delObject.Invoke(args)
Delegate基类提供一些功能,例如
C#编译器禁止您在代码中明确地从委托派生。您必须使用委托关键字。
发布于 2009-04-22 20:56:38
使用delegate关键字可以做的另一件巧妙的事情是内联创建委托,而不必声明它们,例如:
// constructor
public Form1()
{
this.Load += delegate(object sender, EventArgs e)
{
// Form1_Load code goes right here
}
}https://stackoverflow.com/questions/779021
复制相似问题