更新:2007 年 11 月
错误消息
无法将没有参数列表的匿名方法块转换为委托类型“delegate”,因为它有一个或多个 out 参数。编译器允许在大多数情况下从匿名方法块中省略参数。当匿名方法块没有参数列表,而委托具有 out 参数时,会发生此错误。编译器不允许这种情况,因为它需要忽略 out 参数的存在,而这不可能是正确的行为。
示例
下面的代码生成错误 CS1688。
复制代码 | |
---|---|
// CS1688.cs using System; delegate void OutParam(out int i); class ErrorCS1676 { static void Main() { OutParam o; o = delegate // CS1688 // Try this instead: // o = delegate(out int i) { Console.WriteLine(""); }; } } |