很抱歉,如果这个问题过于简单或容易。
我刚开始使用C#学习代表。当我试图在函数内声明一个时,我得到了设计时错误,但是当我在类级别声明相同的Delegate时,它工作正常。为什么呢?
如果这是代码: delegate void Test();
答案 0 :(得分:8)
AFAIK,声明像这样的委托(在C#中,我假设是你正在使用的语言)声明一个新类型。正如您无法在方法中声明类,结构或接口一样,您也无法声明此类型。
编辑:如果您只是学习代理,并且语言确实是c#,请考虑使用Func模板化委托!它将使您免于在任何地方声明。
答案 1 :(得分:0)
在函数中定义委托主要是在函数内声明一个函数。委托的意图是在函数/方法之间传递它们,因此它们仅在类级别声明时才有用。