我的应用程序中有一些长字符串文字。在以下方法中定义它们是否不同:
public string DoSomething()
{
string LongString = "...";
// ...
}
或作为const
字段,如:
private const string LongString = "...";
public string DoSomething()
{
// ...
}
DoSomething()
方法将被多次调用,如果我在方法中定义它,或者编译器需要注意,每次都会创建和销毁LongString
吗?
答案 0 :(得分:2)
字符串文字由CLR获取interned。实际上意味着它们只会创建一次。
答案 1 :(得分:0)
在您的第一个示例中,它仅在函数中可用。在你的第二个中,它可以用于同一个类中的其他函数。
答案 2 :(得分:0)
两者之间没有区别,在该方法中不会多次创建和销毁字符串。 .NET使用string interning,因此不同的字符串文字只定义一次。