Ich habe zwei Variablen.Warum kann ich einen int nicht von einem uint subtrahieren?
int x = 1;
uint y = 2;
Die Typen müssen int
und uint
bleiben. Trotzdem kann ich mit ihnen keine Grundrechenarten durchführen.
y += x;
kann nicht implizit Typ 'int' auf 'uint' konvertieren. Eine explizite Konvertierung existiert (fehlt Ihnen eine Besetzung?)
Also muss ich so etwas immer tun?
if (x < 0)
{
y -= (uint)Math.Abs(x);
}
else
{
y += (uint)x;
}
Kommt aus einem C/C++/Java-Hintergrund, das verwirrt mich.
Gibt es etwas, das mir hier fehlt?
Warum unterscheidet sich dieses Verhalten von den anderen genannten Sprachen?
Gibt es bessere Alternativen?
Ich nehme an, das ist eine häufige Reise bis zu Neulingen der Sprache.
Nein, ich bin nicht auf Unterlauf angewiesen.
'Zur Durchführung y + = x' eine Umwandlung von' int' zu 'uint' muss durchgeführt werden. Da diese Konvertierung verlustbehaftet ist, müssen Sie den Compiler explizit ausführen. – MarcinJuraszek