我在一个类中定义了一个委托字段,我正在一个静态函数内直接初始化该委托字段(没有创建一个对象)。它不应该工作,因为类没有对象,委托字段不是静态的。但它的确有效。任何人都可以解释它是如何工作的。我已经复制了下面的一些代码供参考:
class Test
{
delegate void CustomDel(String s);
static void main()
{
CustomDel del1, del2, del3; //it shouldn't work, but is working.
}
}
答案 0 :(得分:2)
这不符合您的想法:
delegate void CustomDel(String s);
它不是字段,它是委托类型定义。把它想象成:
private class CustomDel : Delegate
{
// ...
}
上面的代码不能编译,因为你不能像那样声明代理,但它本质上是在幕后发生的事情:CustomDel
是一种类型,只是一种特殊的类型。
现在你的代码应该更有意义了:
CustomDel del1, del2, del3;
这只声明了CustomDel
类型的三个局部变量。