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