Прочитать на английском

Поделиться через


Ошибка компилятора CS1958

Выражения инициализатора объектов и коллекции могут не применяться к выражению создания делегата.

В отличие от класса или структуры, делегат не имеет членов, поэтому инициализатору объекта нечего инициализировать. Если эта ошибка возникает, то возможно она вызвана фигурными скобками после выражения создания делегата. Просто удалите эти фигурные скобки, и ошибка исчезнет.

Исправление ошибки

  1. Удалите фигурные скобки.

Пример

В следующем коде возникает ошибка CS1958.

C#
// 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>);  
    }  
}