delegate只能在类定义里面声明吗? 不能再函数里面声明?
下面的几行小程序编译有问题:
class A
{
delegate void Func();
public void f()
{
delegate void Func2();
Console.WriteLine("abc");
}
}
C# 2012编译,第二个delegate语句出了问题,
error CS1513: } expected
error CS1519: Invalid token '(' in class, struct, or interface member declaration
注释掉这行就没有事。这到底是为什么呢?
------解决方案--------------------delegate void Func2(); 这个不能定义在方法里面
只有定义在 类 或 类外面
------解决方案--------------------方法内部不能有类的定义,同样方法的内部也不能有委托的声明。
------解决方案--------------------想不出有什么理由要在方法里面定义委托啊,
如果是这个类专用的,就放在类内部,
如果要与其他类共用,那就与类一样单独放在一个文件中.
------解决方案--------------------“不为什么”可以吧?
你在函数里边声明一个class,又何必呢?