Erreur du compilateur CS0019
L’opérateur 'operator' ne peut pas être appliqué aux opérandes de type 'type' et 'type'
Un opérateur binaire s’applique à des types de données qui ne le prennent pas en charge. Par exemple, vous ne pouvez pas utiliser l’opérateur || sur des chaînes, vous ne pouvez pas utiliser les opérateurs +, -, < ou > sur des variables bool et vous ne pouvez pas utiliser l’opérateur == avec un type struct
, sauf si le type surcharge explicitement cet opérateur.
Vous pouvez surcharger un opérateur afin qu’il prenne en charge les opérandes de certains types. Pour plus d’informations, consultez Surcharge d’opérateur.
Exemple 1
Dans l’exemple suivant, CS0019 est généré en trois emplacements, car bool en C# n’est pas convertible en int. CS0019 est également généré lorsque l’opérateur de soustraction -
est appliqué à une chaîne. L’opérateur d’addition +
peut être utilisé avec des opérandes de chaîne, car il est surchargé par la classe String
pour permettre la concaténation de chaînes.
static void Main()
{
bool result = true;
if (result > 0) //CS0019
{
// Do something.
}
int i = 1;
// You cannot compare an integer and a boolean value.
if (i == true) //CS0019
{
//Do something...
}
string s = "Just try to subtract me.";
float f = 100 - s; // CS0019
}
Exemple 2
Dans l’exemple suivant, la logique conditionnelle doit être spécifiée en dehors de ConditionalAttribute. Vous ne pouvez passer qu’un symbole prédéfini à ConditionalAttribute.
L’exemple suivant génère l’erreur CS0019 :
// CS0019_a.cs
// compile with: /target:library
using System.Diagnostics;
public class MyClass
{
[ConditionalAttribute("DEBUG" || "TRACE")] // CS0019
public void TestMethod() {}
// OK
[ConditionalAttribute("DEBUG"), ConditionalAttribute("TRACE")]
public void TestMethod2() {}
}
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour