Číst v angličtině

Sdílet prostřednictvím


Chyba kompilátoru CS1688

Anonymní blok metody nelze převést bez seznamu parametrů na delegovaný typ delegate, protože má jeden nebo více parametrů.

Kompilátor umožňuje ve většině případů vynechat parametry z bloku anonymní metody. K této chybě dochází v případě, že blok anonymní metody nemá seznam parametrů, ale delegát má out parametr. Kompilátor tuto situaci nepovoluje, protože by potřeboval ignorovat přítomnost parametru out , což je nepravděpodobné, že by to bylo správné chování.

Příklad

Následující kód vygeneruje chybu 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("");  
        };  
    }  
}