Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Operator operator kan niet worden toegepast op operanden van het type 'type' en 'type'
Er wordt een binaire operator toegepast op gegevenstypen die deze niet ondersteunen. U kunt de operator bijvoorbeeld niet gebruiken || voor tekenreeksen, u kunt geen operatoren of > -<operatoren voor boolvariabelen gebruiken +en u kunt de == operator niet gebruiken met een struct type, tenzij het type die operator expliciet overbelast.
U kunt een operator overbelasten om operanden van bepaalde typen te ondersteunen. Zie Overbelasting van operatoren voor meer informatie.
Voorbeeld 1
In het volgende voorbeeld wordt CS0019 gegenereerd op drie plaatsen omdat bool in C# niet converteerbaar is naar int. CS0019 wordt ook gegenereerd wanneer de aftrekkingsoperator - wordt toegepast op een tekenreeks. De operator voor optellen + kan worden gebruikt met tekenreeksoperanden omdat deze operator wordt overbelast door de String klasse om tekenreekssamenvoeging uit te voeren.
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
}
Voorbeeld 2
In het volgende voorbeeld moet voorwaardelijke logica worden opgegeven buiten het ConditionalAttribute. U kunt slechts één vooraf gedefinieerd symbool doorgeven aan de ConditionalAttribute.
In het volgende voorbeeld wordt CS0019 gegenereerd:
// 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() {}
}