{0}
使用和之间有什么区别吗,+
因为它们都在做同样的工作,在屏幕上打印长度:
Console.WriteLine("Length={0}", length);
Console.WriteLine("Length=" + length);
{0}
使用和之间有什么区别吗,+
因为它们都在做同样的工作,在屏幕上打印长度:
Console.WriteLine("Length={0}", length);
Console.WriteLine("Length=" + length);
在您的简单示例中,没有区别。但是有很好的理由更喜欢 formatted ( {0}
) 选项:它使国际软件的本地化变得非常容易,并且它使第三方编辑现有字符串变得更加容易。
例如,假设您正在编写一个产生此错误消息的编译器:
"Cannot implicitly convert type 'int' to 'short'"
你真的要写代码吗
Console.WriteLine("Cannot implicitly convert type '" + sourceType + "' to '" + targetType + "'");
? 天哪,没有。您想将此字符串放入资源中:
"Cannot implicitly convert type '{0}' to '{1}'"
然后写
Console.WriteLine(FormatError(Resources.NoImplicitConversion, sourceType, targetType));
因为那时您可以自由决定是否要将其更改为:
"Cannot implicitly convert from an expression of type '{0}' to the type '{1}'"
或者
"Conversion to '{1}' is not legal with a source expression of type '{0}'"
这些选择可以稍后由英语专业的学生做出,而无需更改代码。
您还可以将这些资源翻译成其他语言,同样无需更改代码。
现在开始总是使用格式化字符串;当您需要编写正确使用字符串资源的可本地化软件时,您已经习惯了。
它们是有区别的。
前任:
Console.WriteLine("the length is {0} which is the length", length);
Console.WriteLine("the length is "+length+" which is the length");
+
连接两个字符串,{0}
是要插入的字符串的占位符。
{n}
是一个占位符,可以与多个选项一起使用。 其中 n 是一个数字
在您的示例中,它会有所不同,最终结果将相同,即两个字符串的连接。但是在类似的东西
var firstName = "babba";
var lastName ="abba";
var dataOfBirth = new Date();
Console
.Write(" Person First Name : {0} | Last Name {1} }| Last Login : {2:d/M/yyyy HH:mm:ss}",
firstName,
secondName,
dateOfBirth);
它提供了一个易于阅读的界面,易于格式化
{n}
wheren >= 0
允许您按字符串中出现的顺序替换值。
string demo = "demo", example = "example";
Console.WriteLine("This is a {0} string used as an {1}", demo, example);
+
允许您将两个或多个字符串连接在一起。
Console.WriteLine("This is a " + demo + " string used as an " + example);