字符串文字的正确方法

时间:2012-10-29 18:31:08

标签: c# .net string

我的应用程序中有一些长字符串文字。在以下方法中定义它们是否不同:

public string DoSomething()
{
    string LongString = "...";
    // ...
}

或作为const字段,如:

private const string LongString = "...";

public string DoSomething()
{
    // ...
}

DoSomething()方法将被多次调用,如果我在方法中定义它,或者编译器需要注意,每次都会创建和销毁LongString吗?

3 个答案:

答案 0 :(得分:2)

字符串文字由CLR获取interned。实际上意味着它们只会创建一次。

答案 1 :(得分:0)

在您的第一个示例中,它仅在函数中可用。在你的第二个中,它可以用于同一个类中的其他函数。

答案 2 :(得分:0)

两者之间没有区别,在该方法中不会多次创建和销毁字符串。 .NET使用string interning,因此不同的字符串文字只定义一次。