Ich habe heute irgendwie mit dem Schreiben von Code angefangen. Nehmen wir als Beispiel:Gibt es einen Unterschied zwischen Besetzung und starker Typzuweisung?
long valueCast = (long)(10 + intVariable);
long valueTyped = 10L + intVariable;
Gibt es einen Unterschied zwischen diesen beiden oder sind sie genau das gleiche kompiliert? Gibt es eine Konvention für eine über die andere?
Also ich weiß, das ist keine kritische Frage (beide funktionieren). Ich bin nur sehr neugierig, was der Unterschied sein könnte!
BEARBEITEN - Modifizierte das Codebeispiel, um näher zu sein, was mein ursprüngliches Szenario tatsächlich ist. Ich wollte, dass die Frage klar ist, also habe ich die Variable durch eine Konstante ersetzt. Realisierte nicht, dass der Compiler automatisch zur Arithmetik würde (wodurch die Antworten auf diese Frage geändert werden)
@ FrédéricHamidi Nein, sie sind funktionell anders, so dass sie sicherlich nicht auf die gleiche Sache kompilieren werden. Wenn die Klammern anders wären und die Besetzung vor der Hinzufügung wäre, dann könnten sie sich möglicherweise zu der gleichen Sache kompilieren. – Servy
@Servy, Punkt genommen. Ich wollte gerade etwas sagen, aber der Fragesteller, der das wörtliche "2" in "intVariable" umwandelt, macht meinen Standpunkt irrelevant. –
Als eine FYI für andere später. Ich habe zuerst versucht, [die Typdokumentation für lange] zu referenzieren (http://msdn.microsoft.com/en-us/library/ctetwysk.aspx). Es hat meine Frage nicht gelöst, aber es könnte später jemand anderem helfen. –