编译器错误 CS1958
更新:2007 年 11 月
错误消息
对象和集合初始值设定项表达式不能应用于委托创建表达式,
与类或结构不同,委托不具有任何成员,因此对象初始值设定项没有要进行初始化的内容。如果遇到此错误,则可能是因为委托创建表达式后面有大括号。只需移除这些大括号,此错误即会消失。
更正此错误
- 移除大括号。
示例
下面的代码将产生 CS1958:
// cs1958.cs
public class MemberInitializerTest
{
delegate void D<T>();
public static void GenericMethod<T>() { }
public static void Run()
{
D<int> genD = new D<int>(GenericMethod<int>) { }; // CS1958
// Try the following line instead
// D<int> genD = new D<int>(GenericMethod<int>);
}
}