Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Operatorn operator kan inte tillämpas på operander av typen "typ" och "typ"
En binär operator tillämpas på datatyper som inte stöder den. Du kan till exempel inte använda operatorn || på strängar, du kan inte använda +, -, <eller > operatorer på boolvariabler och du kan inte använda operatorn == med en struct typ om inte typen uttryckligen överbelastar operatorn.
Du kan överbelasta en operator så att den stöder operander av vissa typer. Mer information finns i Operatoröverlagring.
Exempel 1
I följande exempel genereras CS0019 på tre platser eftersom bool i C# inte kan konverteras till int. CS0019 genereras också när subtraktionsoperatorn - tillämpas på en sträng. Additionsoperatorn + kan användas med strängoperatorer eftersom operatorn överbelastas av String klassen för att utföra strängsammanfogning.
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
}
Exempel 2
I följande exempel måste villkorsstyrd logik anges utanför ConditionalAttribute. Du kan bara skicka en fördefinierad symbol till ConditionalAttribute.
Följande exempel genererar 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() {}
}