Kompilatorfel CS0837
Den första operanden för operatorn "is" eller "as" kanske inte är ett lambda-uttryck, en anonym metod eller en metodgrupp.
Lambda-uttryck, anonyma metoder och metodgrupper får inte användas till vänster om is eller as.
Om felet involverar operatorn
is
ska du komma ihåg attis
tar ett värde och en typ och anger om värdet kan göras till den typen av referens, boxning eller avboxningskonvertering. Eftersom lambdas inte är värden och inte har någon referens, boxning eller avboxning av konverteringar är lambdas inte kandidater föris
.Om koden missbrukar
as
kommer korrigeringen förmodligen att ändra den till en gjuten.
I följande exempel genereras 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;
}
}
}
Feedback om .NET
.NET är ett öppen källkod projekt. Välj en länk för att ge feedback: