string.format(…、p1、p2、p3)を使用する冗長性を減らす方法はありますか?
-
03-10-2019 - |
質問
私はよく使用します String.Format()
弦の建物がより読みやすく管理しやすくなるからです。
とにかく、その構文的な冗長性、例えば拡張方法などがありますか?
Logger.LogEntry(String.Format("text '{0}' registered", pair.IdCode));
public static void LogEntry(string message)
{
...
}
例 Console.Write()
, 、例:
Logger.LogEntry("text '{0}' registered", pair.IdCode);
解決
どうですか:
static void LogEntry(string format, params object[] args) {
Console.WriteLine(format, args); // For example.
}
今、あなたはそれをこのように呼ぶことができます:
Logger.LogEntry("text '{0}' registered", pair.IdCode);
他のヒント
あなたが制御する場合 Logger.LogEntry
方法、String.Formatを含むオーバーロードを追加するだけです。 2番目のパラメーターをパラマレイとして宣言するだけで、行ってもいいです!
はい、次のようなことを言うことができます。
Logger.LogEntry("I hate my {0}".FormatWith(itemName));
自分で転がすのに十分簡単なはずですが、ここに例があります。 http://james.newtonking.com/archive/2008/03/27/formatwith-string-format-extension-method.aspx
もしも Logger.LogEntry
あなたのコントロールの外側の静的な方法であり、そうではありません。インスタンスに拡張メソッドのみを追加できます。それがあなたのタイプの場合、あなたは追加することができます:
public static void LogEntry(string format, params object[] args) {
... string.Format(format,args) ...
}
Paramsキーワードを使用して、最初の引数の後にすべての引数を配列に結合し、その配列をString.Formatに渡すことができます。
static void FormatString(string myString, params string[] format)
{
Console.WriteLine(String.Format(myString, format));
}
所属していません StackOverflow