Erreur du compilateur CS0837
Le premier opérande d'un opérateur « is » ou « as » ne peut pas être une expression lambda, une méthode anonyme ni un groupe de méthodes.
Les expressions lambda et les méthodes anonymes ne peuvent pas être utilisées du côté gauche de is ou as.
Si l’erreur implique l’opérateur
is
, n’oubliez pas queis
prend une valeur et un type, puis vous indique si la valeur peut être transformée en ce type par une conversion de référence, boxing ou unboxing. Étant donné que les expressions lambda ne sont pas des valeurs et qu’elles n’ont aucune conversion de référence, boxing ou unboxing, elles ne sont pas candidates pouris
.Si le code utilise incorrectement
as
, la correction consiste probablement à le transformer en cast.
L’exemple suivant génère l’erreur 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;
}
}
}
Commentaires sur .NET
.NET est un projet open source. Sélectionnez un lien pour fournir des commentaires :