Zitat: |
Jetzt ist plus und komma zwar nicht irgendwie verschieden |
Das ist beides in himmelweiter Unterschied - zumindest in C#
Das + ist ein Operator, den du sogar überladen kannst. Bei Zahlen addiert er, bei Strings fügt er Diese zusammen.
Was genau passiert, hängt davon ab, in welchem Zusammenhang der Operator verwendet wird. Wenn es mal nicht eindeutig sein sollte: Auf der MSDN-Doku gibt es garantiert ausreichend Informationen für diesen konkreten Fall, wenn er im .Net-Framework enthalten ist.
Hier findest du eine Liste der Operatoren. Unten bei den Referenzen findest du auch einen kurzen Artikel zu überladbare Operatoren.
Das Komma ist kein Operator, es trennt zwei Dinge voneinander, in diesem Fall die Parameter.
WriteLine nutzt intern die
string.Format-Methode, der an erster Stelle der Format-String und danach beliebig viele Parameter übergeben werden, die dann die vordefinierten Platzhalter im Format-String ersetzen.
Ich weiß nicht, ob string.Format bei zu vielen Parametern eine Exception wird, aber ich vermute eher nicht, weil das für die Methode ja keine Ausnahme darstellt. Der eine Parameter wird also einfach ignoriert, weil im Format-String vorher keine Position für diesen Parameter angegeben wurde.
Richtig wäre es so:
C#-Quelltext
1:
| Console.WriteLine("wight: {0}" , ((Porsche)A).wight); |
Das lässt sich aber auch mit etwas Zeit und Google lösen, du musst nur nach der Methoden-Definition suchen, die du siehst, wenn du in Visual Studio mit der Maus über den Methoden-Namen fährst.