关于C#中的字符串和引用可能有些愚蠢的问题

时间:2010-11-02 14:06:15

标签: c#

下午好,

如果这个问题太愚蠢我很抱歉,但我对.Net的内存管理系统知之甚少(几乎所有内容),我真的需要澄清这个疑问......我有一个{{1我需要使用它,现在我需要一个树,其节点用相同字典中的字符串标记。当然,由于我不想存储冗余信息,如何确保节点的标签指向与字典键相同的引用?

非常感谢,

3 个答案:

答案 0 :(得分:4)

字符串ARE引用类型,因此除非您执行破坏它的操作,否则这将是默认值。

例如,对于一个asp.net页面(我知道你没有指定),在客户端显示的字符串不能与服务器内存中的字符串具有相同的引用。

答案 1 :(得分:3)

您可以使用以下内容:

TreeNode node = new TreeNode();
node.Text = dictionary.Keys[0];

它将是同一个实例。

答案 2 :(得分:1)

由于String是引用类型,因此在使用对String对象的引用引用字典条目时必须非常谨慎。你显然可以,但它有时是不可能的(就像汉斯提到的不同客户端 - 服务器引用一样)如果你知道你在做什么,使用引用,但如果没有,你总是可以比较字符串的值('等于'方法)到参考字典元素。