如何使用Format("blah {0}",someValue)签名实现MyMethod(),如string.format

Adr*_*n K 9 .net c# string arguments string-formatting

String.Format和StringBuilder(通过AppendFormat方法)允许调用者将值泵入他们准备的字符串中,例如:

string temp = string.Format("Item {0} of {1}, Record Id: {2} started...",
  itemCounter.ToString(),
  totalItemsToProcess.ToString(),
  myRecord.RecordId);
MyMethod(temp);
Run Code Online (Sandbox Code Playgroud)

但是,而不是构建一个字符串并将其传递给"MyMethod()",我宁愿有一个人们这样调用的重载:

MyMethod("Item {0} of {1}, Record Id: {2} started...",
  itemCounter.ToString(),
  totalItemsToProcess.ToString(),
  myRecord.RecordId);
Run Code Online (Sandbox Code Playgroud)

你会如何实现?有什么我可以利用或我必须写一堆自定义代码?

Chr*_*sto 14

这是非常微不足道的,但params的使用较少:

static string MyMethod( string format, params object[] paramList )
{
    return string.Format(format, paramList);
}
Run Code Online (Sandbox Code Playgroud)