在静态函数中使用委托
本文关键字:静态函数 | 更新日期: 2023-09-27 18:29:19
我在类中定义了一个委托字段,并直接在静态函数中初始化该委托字段(不生成对象)。它不应该工作,因为类中没有对象,委托字段也不是静态的。但它是有效的。有人能解释一下它是如何工作的吗。我已经复制了下面的一些代码供参考:
class Test
{
delegate void CustomDel(String s);
static void main()
{
CustomDel del1, del2, del3; //it shouldn't work, but is working.
}
}
这不会像你想的那样:
delegate void CustomDel(String s);
它不是一个字段,而是一个委托类型定义。把它想象成:
private class CustomDel : Delegate
{
// ...
}
上面的代码不会编译,因为你不能像那样声明委托,但这本质上是幕后发生的事情:CustomDel
是一种类型,只是一种特殊的类型。
现在你的代码应该更有意义了:
CustomDel del1, del2, del3;
这只声明了三个CustomDel
类型的局部变量。