2016-06-01 14 views
0

Meine Frage ist, wie "object.ToString()" -Methode in String-Verkettung-Anweisung auswerten.Wie "object.ToString()" in Zeichenfolge verketten Anweisung ausgewertet?

Ich meine, wenn Code schreiben Ähnliche Videos-:

class Employee 
{ 
    public string Name{get; set;} 

    public override string ToString() 
    { 
     return string.Format("Employee Name {0}", Name); 
    } 
} 

static void Main() 
{ 
    Employee emp = new Employee() {Name = "Ni3"}; 
    string result = "Result = " + emp; 

    Console.WriteLine(result); 
} 

es ergibt -

Result = Employee Name Ni3 

so Compiler die Anweisung wie folgt transformiert -:

string result= String.Concat("Result = ",emp.ToString()); 

oder gibt es einen anderen Grund .

+0

Es scheint, dass Sie interessiert sind in [der '+' Operator für Strings] (http://stackoverflow.com/questions/10341188/string-concatenation-using-operator)? –

+1

Ja und danke an @Hans für die schnelle Lösung –

Antwort

4

Nicht ganz, Sie verwenden die overload, die zwei Objektparameter verwendet.

Und diese Methode ruft .ToString() auf diese Objekte, nach einem Null-Check. Siehe Abschnitt Hinweise:

Die Methode verkettet arg0 und arg1by die parameterlos ToString-Methode von arg0 und arg1 Aufruf; Es fügt keine Begrenzer hinzu.
String.Empty wird anstelle eines Nullarguments verwendet.
Wenn eines der Argumente eine Array-Referenz ist, verknüpft die Methode eine Zeichenfolge , die dieses Array anstelle seiner Member darstellt (z. B. "System.String []").

Verwandte Themen