私は次のような小さな関数を持っています:
void Bar(string s)
{
*/ do somthing with the string here.*/
}
void Foo()
{
Bar("Hello");
}
IL出力を見ると、次のようになります。
.method private hidebysig instance void Foo() cil managed
{
.maxstack 8
L_0000: ldarg.0
L_0001: ldstr "Hello"
L_0006: call instance void TestApp.MainWindow::Bar(string)
L_000b: ret
}
今、私はそれをconst string
フィールドに置き換えると思いました。
const string str= "Hello";
void Foo()
{
Bar(str);
}
これは、まったく同じIL スニペットに変換されます。
今私の質問はどれを使うべきですか?
Foo("Hello");
またFoo(cHello);
ご協力ありがとうございました!
--------------編集--------------------
より具体的には、これをロギングの目的で使用して、プレフィックスを追加しますメッセージ: コード内で 1 回だけ表示されます。
したがって、次のようになります。
void LogDebug(string msg)
{
Log("[DEBUG]", msg)
}
void Log(string pre, string msg)
{
// generates an output in form of
// pre + msg
}
:)