Ошибка компилятора CS1688
Обновлен: Ноябрь 2007
Сообщение об ошибке
Невозможно преобразовать блок анонимного метода без списка параметров в тип делегата "delegate", поскольку он имеет один или несколько выходных параметров
Cannot convert anonymous method block without a parameter list to delegate type 'delegate' because it has one or more out parameters
В большинстве случаев компилятор позволяет опускать параметры в блоке анонимного метода. Данная ошибка возникает при отсутствии списка параметров у блока анонимного метода и при наличии параметра 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("");
};
}
}