普通字符串的许多实例比const字符串使用更多的内存吗?

本文关键字:字符串 内存 const 许多 实例 | 更新日期: 2023-09-27 18:18:03

我正在开发一个应用程序,它有这样的类:

public class ClassA
{
    List<ClassB> _myList = new List<ClassB>();
    public ClassA() 
    {
        _myList.Add(new ClassB("String A"));
        _myList.Add(new ClassB("String B"));
        _myList.Add(new ClassB("String C"));
        _myList.Add(new ClassB("String D"));
        _myList.Add(new ClassB("String E"));        
    }
}

ClassAClassB在应用程序中被使用了数千次,以跟踪应用程序中几乎每个操作的性能。

我想知道将这些字符串更改为staticconst值是否有任何好处。

像这样的代码,是这个字符串的多个副本存储在内存中,还是。net确保只存在一个副本,不管ClassAClassB创建了多少个实例?

普通字符串的许多实例比const字符串使用更多的内存吗?

这样做没有任何好处。程序中的任何字符串(与来自用户输入或文件的内容相反)都是内部的,并且只有一个副本。无论哪种方式,您都只是引用了内部副本。

如果你有兴趣了解更多,这里有一篇关于字符串实习的文章的链接:http://broadcast.oreilly.com/2010/08/understanding-c-stringintern-m.html