我有一个像这样的小功能:
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);
感谢您的帮助!
--------------EDIT--------------------
更具体地说,我将其用于记录目的,以添加前缀一条消息:它只会在代码中出现一次!
所以它看起来更像这样:
void LogDebug(string msg)
{
Log("[DEBUG]", msg)
}
void Log(string pre, string msg)
{
// generates an output in form of
// pre + msg
}
:)