【问题标题】:How to implement MyMethod() with Format("blah {0}", someValue) signature like string.format如何使用 Format("blah {0}", someValue) 签名(如 string.format)实现 MyMethod()
【发布时间】: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


【解决方案1】:

这很简单,但参数的使用较少:

static string MyMethod( string format, params object[] paramList )
{
    return string.Format(format, paramList);
}

【讨论】:

  • 感谢您的示例。参数是它;我感谢提供链接的其他人:)
【解决方案2】:

【讨论】:

  • 啊——恰到好处。我知道有一个简单的方法。
【解决方案3】:

查看params

【讨论】:

  • 对不起 RedDeckWins - CharithJ 赌你 2 分钟。
  • 我在 44 分钟前回答,这意味着我的回答早于 38 或 42 分钟前的回答...如果您将鼠标悬停在“x 分钟前”上,您可以看到它发布的时间。
【解决方案4】:

你可以创建一个方法并在里面使用String.Format,大概是这样的:

private void MyMethod(string separator, params string[] strings)
{
      string concatenatedString = String.Format(separator, strings);

      //More processing
}

【讨论】:

    【解决方案5】:

    我不明白你为什么要在这种情况下编写你的方法,但是在这里你可以如何做到这一点

    public string MyMethod(string s, params object[] args)
    {
         return string.Format(s,args);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多