1

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

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

或作为constlass 中的一个字段,例如:

private const string LongString = "...";

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

DoSomething()方法会被多次调用,LongString如果我在方法内部定义它,是每次创建和销毁,还是编译器负责?

4

3 回答 3

2

字符串文字CLR 执行。实际上意味着它们只会被创建一次。

于 2012-10-29T18:37:24.927 回答
0

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

于 2012-10-29T18:33:56.827 回答
0

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

于 2012-10-29T18:37:19.040 回答