編譯器錯誤 CS0837
is' 或 'as' 運算子的第一個運算元,不可為 Lambda 運算式、匿名方法或方法群組。
Lambda 運算式、匿名方法和方法群組不能用於 is 或 as 的左側。
如果錯誤涉及
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;
}
}
}