把它赋值给一个具体的Delegate对象,比如你有这样的定义:delegate void Foo();那你可以写:Foo f = delegate { ... };f.BeginInvoke(null, null);我猜原因可能是这样:delegate() {}引导的语句只是一个语法,它并不确定任何类型,比如你有:delegate void Foo();delegate void Bar();你只写delegate() {}的话,编译器不知道你是什么类型