英語で読む

次の方法で共有


コンパイラ エラー CS1688

デリゲート型 'delegate' には 1 つ以上の out パラメーターが含まれているため、パラメーター リストを含まない匿名メソッド ブロックをこのデリゲート型に変換することはできません

多くの場合、匿名メソッド ブロックではパラメーターを省略できます。 このエラーは、匿名メソッド ブロックにパラメーター リストがなく、デリゲートに 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("");  
        };  
    }  
}