共用方式為


編譯器錯誤 CS0837

更新:2007 年 11 月

錯誤訊息

"is" 或 "as" 運算子的第一個運算元不可為 Lambda 運算式或匿名方法。

Lambda 運算式和匿名方法 (Anonymous Method) 不可以用於 isas 的左邊。

若要更正這個錯誤

  • 如果錯誤與 is 運算子有關,請記住 is 會使用一個值及一個型別,而且會告訴您是否可以透過參考、boxing 或 unboxing 轉換將值製作為該型別。因為 Lambda 不是值而且未進行參考、boxing 或 unboxing 轉換,所以 Lambda 不是 is 的候選項目。

  • 如果程式碼誤用 as,則可能需要進行校正,將它變更為轉換 (Cast)。

範例

下列範例會產生 CS0837:

// cs0837.cs
namespace TestNamespace
{
    public delegate void Del();

    class Test
    {
        static int Main()
        {
            bool b1 = (() => { }) is Del;   // CS0837
            bool b2 = delegate() { } is Del;// CS0837
            Del d1 = () => { } as Del;      // CS0837
            Del d2 = delegate() { } as Del; // CS0837
            return 1;
        }
    }
}