我的问题是" object.ToString()"方法在字符串连接语句中求值?。
我的意思是如果写代码如: - :
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);
}
它产生 -
Result = Employee Name Ni3
所以编译器会像这样转换语句 - :
string result= String.Concat("Result = ",emp.ToString());
还是有其他原因。
答案 0 :(得分:4)
不完全是,您正在使用使用两个对象参数的overload。
此方法在空检查后对这些对象调用.ToString()
。请参阅备注部分:
该方法通过调用无参数来连接arg0和arg1 arg0和arg1的ToString方法;它没有添加任何分隔符 String.Empty用于代替任何null参数 如果是其中之一 arguments是一个数组引用,该方法连接一个字符串 表示该数组,而不是其成员(例如, " System.String []"。)