【问题标题】:Why use a placeholder? [closed]为什么要使用占位符? [关闭]
【发布时间】:2016-06-11 23:26:40
【问题描述】:

我有一个正在使用 c# 进行的迷你项目。我对 c# 还很陌生,想知道为什么我应该使用占位符 {0} 而不是 +。有什么不同吗?使用其中一个有什么好处?

这是一个例子-

 public void DisplayMessage()
  {
    Console.WriteLine("Student Name:"+ Name); // Why not this
    Console.WriteLine("Studnt Age: {0}", Age);// instead of this?
  }

谢谢

【问题讨论】:

  • 我看到你不是在尝试微优化,只是好奇。 Here 是你喜欢的东西。
  • 在 C#6 中你也可以添加 Console.WriteLine($"Student Age: {Age}");
  • 复杂的格式、多个字段和字符串格式的调整更容易
  • @displayName 好的,所以我从中得到的是,这真的没关系吗?

标签: c# methods placeholder


【解决方案1】:

格式化字符串比添加字符串更清晰,尤其是当你有两个以上的参数时。

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)

我之前做过基准测试,添加 string.Format 更快。但是 IMO 你还是应该使用string.Format,微小的性能提升并不那么重要。

【讨论】:

  • 是的,最终用户无论如何都不会注意到差异......
  • @user3793369 但是作为后端开发人员,我们应该关心那些不会被用户看到的内容。代码风格和重用非常重要。
  • @user3793369 也许吧,但您最好还是坚持最佳做法
  • @user3793369 作为一名开发人员,在进行糟糕的部署和大量紧急会议和分类之后,晚上 10 点盯着那行代码。我可以告诉你,区别是白天和黑夜。也就是说,要么在晚上下班,要么在白天下班。
猜你喜欢
  • 1970-01-01
  • 2013-08-28
  • 2010-10-01
  • 2017-02-17
  • 2011-08-21
  • 2015-03-11
  • 2013-02-17
  • 1970-01-01
相关资源
最近更新 更多