閱讀英文

共用方式為


編譯器錯誤 CS0837

is' 或 'as' 運算子的第一個運算元,不可為 Lambda 運算式、匿名方法或方法群組。

Lambda 運算式、匿名方法和方法群組不能用於 isas 的左側。

更正這個錯誤

  • 如果錯誤涉及 is 運算子,請記住 is 會使用值和類型,並告訴您是否可透過參考、Boxing 或 Unboxing 轉換將值改變為該類型。 因為 Lambda 不是值而且沒有參考、Boxing 或 Unboxing 轉換,所以 Lambda 不適合用於 is

  • 如果程式碼誤用 as,則可能會進行更正,以將它變更為轉換。

範例

下列範例會產生 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;
        }
    }
}