日期:2014-05-17  浏览次数:20913 次

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,又何必呢?