更新:2007 年 11 月
错误消息
“is”或“as”运算符的第一个操作数不能是 lambda 表达式或匿名方法。Lambda 表达式和匿名方法不能在
更正此错误
如果该错误涉及到 is 运算符,请记住 is 需要一个值和一个类型,并指示是否可通过引用、装箱或取消装箱转换将值设置为该类型。由于 lambda 不是值并且没有引用、装箱或取消装箱转换,因此 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; } } } |