在C#中向字符串添加整数
最近我被告知可以将整数(和其他类型)连接到字符串,反之亦然,即
// x == "1234" // y == "7890" string x = "123" + 4; string y = 7 + "890";
出于某种原因,我不认为这种事情是允许的,所以我一直在使用(从.NET 2开始)forms:
// x == "1234" // y == "7890" string x = "123" + 4.ToString(); string y = 7.ToString() + "890";
整数转换为字符串的位置。 以前的版本是否始终可用,我错过了它,或者它是C#4的新东西(我现在正在使用它)?
这一直存在。 如果至少有一个操作数是字符串,则+
等同于string.Concat()
。 string.Concat()
有一个带有object
实例的重载。 在内部,它会在连接之前调用对象的ToString()
方法。
找到C#规范中的相关部分 – 第7.7.4节添加运算符:
字符串连接 :
string operator +(string x, string y); string operator +(string x, object y); string operator +(object x, string y);
当一个或两个操作数的类型为字符串时,binary +运算符执行字符串连接。 如果字符串连接的操作数为null,则替换空字符串。 否则,通过调用从类型对象inheritance的虚拟ToString方法,将任何非字符串参数转换为其字符串表示forms。 如果ToString返回null,则替换空字符串。
当然,最好的答案是使用某种forms:
String.Format("{0},{1}", "123", 4);