【发布时间】:2011-08-14 10:12:47
【问题描述】:
String.Format 和 StringBuilder(通过 AppendFormat 方法)允许调用者将值泵入他们准备好的字符串中,例如:
string temp = string.Format("Item {0} of {1}, Record Id: {2} started...",
itemCounter.ToString(),
totalItemsToProcess.ToString(),
myRecord.RecordId);
MyMethod(temp);
但与其构建一个字符串并将其传递给“MyMethod()”,我宁愿有一个人们这样称呼的重载:
MyMethod("Item {0} of {1}, Record Id: {2} started...",
itemCounter.ToString(),
totalItemsToProcess.ToString(),
myRecord.RecordId);
您将如何实现它? 有什么我可以利用的还是我必须编写一堆自定义代码?
【问题讨论】:
-
为什么需要 MyMethod?我认为 string.format 更清晰...
-
为什么要重新发明轮子?
-
#ArsenMkrt, MyMethod() 是纯伪代码。我需要提供一种方法来接受基本上是字符串的内容,但很多时候会有各种信息可以注入其中。允许调用者使用 string.format 类型重载使使用更容易,其余代码更干净。
-
#V4Vendetta,便于使用并保持代码更简洁。顺便说一句,我认为它与 StringBuilder 上的 AppendFormat() 方法并不太相似——我猜(非常尊重)你不会称之为 reinvention?
-
有趣的观察:在问题代码中我从来没有说过 MyMethod() 返回任何东西 - 但所有代码示例都有 MyMethod 返回一个字符串。不是批评——只是有趣:)
标签: c# .net string arguments string-formatting