我在c#中有一个迷你项目。我对c#相当新,并且想知道为什么我应该使用占位符{0}而不是+。有什么不同吗?使用一个优于另一个有什么好处?
以下是一个例子 -
public void DisplayMessage()
{
Console.WriteLine("Student Name:"+ Name); // Why not this
Console.WriteLine("Studnt Age: {0}", Age);// instead of this?
}
谢谢
答案 0 :(得分:2)
格式化字符串比添加字符串更清晰,尤其是当您有两个以上的参数时。
static readonly string UrlFormat = "{0}://{1}/{2}?{3}"; //the format can be reused
var url = string.Format(UrlFormat, scheme, host, path, query);
var anotherUrl = string.Format(UrlFormat, scheme2, host2, path2, query2);
var bad = scheme3 + "://" + host3 + "/" + path3 + "?" + query3;
顺便说一下,在C#6中,格式可以更漂亮:
var urlUsingNewFeature = $"{scheme}://{host}/{path}?{query}";
您可以看到它们之间的维护成本。
性能添加字符串的唯一好处是,当您添加两个字符串时,它比字符串格式化更快。
"Student Name: " + name
比
快一点string.Format("Student Name: {0}", name)
之前我做了基准测试,添加< = 3字符串比使用string.Format
更快。但IMO你仍然应该使用string.Format
,微小的性能提升并不重要。