Przeczytaj w języku angielskim

Udostępnij za pośrednictwem


Błąd kompilatora CS1688

Nie można przekonwertować bloku metody anonimowej bez listy parametrów na typ delegata "delegate", ponieważ ma co najmniej jeden parametr wyjściowy

Kompilator umożliwia pominięcie parametrów z bloku metody anonimowej w większości przypadków. Ten błąd występuje, gdy blok metody anonimowej nie ma listy parametrów, ale delegat ma out parametr. Kompilator nie zezwala na tę sytuację, ponieważ konieczne byłoby zignorowanie obecności parametru out , co jest mało prawdopodobne, aby było prawidłowym zachowaniem.

Przykład

Poniższy kod generuje błąd 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("");  
        };  
    }  
}