Compilerfout CS0837
De eerste operand van een operator 'is' of 'as' is mogelijk geen lambda-expressie, anonieme methode of methodegroep.
Lambda-expressies, anonieme methoden en methodegroepen kunnen niet worden gebruikt aan de linkerkant van is of als.
Als de fout betrekking heeft op de
is
operator, moet u er rekening mee houden datis
een waarde en een type worden gebruikt en wordt aangegeven of de waarde in dat type kan worden gemaakt door een verwijzing, boksen of conversie uit te schakelen. Omdat lambdas geen waarden zijn en geen verwijzings-, boks- of uitboxingconversies hebben, zijn lambdas geen kandidaten vooris
.Als de code misbruikt
as
, is de correctie waarschijnlijk om deze te wijzigen in een cast.
In het volgende voorbeeld wordt CS0837 gegenereerd:
// 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;
}
}
}
.NET-feedback
.NET is een open source project. Selecteer een koppeling om feedback te geven: