編譯器錯誤 CS0837
更新:2007 年 11 月
錯誤訊息
"is" 或 "as" 運算子的第一個運算元不可為 Lambda 運算式或匿名方法。
Lambda 運算式和匿名方法 (Anonymous Method) 不可以用於 is 或 as 的左邊。
若要更正這個錯誤
如果錯誤與 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;
}
}
}