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

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


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

Невозможно преобразовать блок анонимного метода без списка параметров в делегат "делегат", поскольку он имеет один или несколько выходных параметров

В большинстве случаев компилятор позволяет опускать параметры в блоке анонимного метода. Эта ошибка возникает при отсутствии списка параметров в блоке анонимного метода и при наличии параметра out у делегата. Компилятор не допускает возникновение такой ситуации, так как игнорирование имеющегося параметра out почти наверняка вызовет появление ошибок.

Пример

Приведенный ниже код вызывает ошибку CS1688.

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