我正在学习拳击和 string.format()
。我发现它会将值类型(如整数)装箱。
因此,以下代码将导致装箱:
var number = 5;
var sampleString = string.Format("The number 5: {0}", number);
这段代码将会生成一个字符串。
The number 5: 5
然而,如果我使用标准的
+
操作符拼接字符串,它仍然会产生相同的字符串。var sampleString = "The number 5: " + number;
这是怎么回事,它也将整数转换为对象吗?
这也适用于日期对象,例如:
var dateString = string.Format("The date: {0}", DateTime.Now);
var dateString = "The date: " + DateTime.Now;
我想第一行会分裂,但第二行也会吗?
string.format
不期望字符串,而是期望对象,但+
期望字符串。 - Smeegs+
:任何非字符串参数都将通过调用从类型对象继承的虚拟 ToString 方法转换为其字符串表示形式。 - Alex K.