这是班考
public class Test
{
public string mystr;
}
我从方法中调用它:
string my = "ABC";
Test test = new Test();
test.mystr = my;
test.mystr = "";
上面的位代码的结果是:
my = "ABC"
和test.mystr = ""
更改
my
时如何将""
设置为空字符串test.mystr = ""
? 最佳答案
如果我理解正确,您希望链接变量my
和test.myStr
,因此,如果其中一项发生变化,另一项发生变化?
答案很简单:不可能!
字符串是不可变的类。多个引用可以指向一个字符串实例,但是一旦修改了该实例,就会使用新值创建一个字符串实例。因此,将新引用分配给变量,而其他变量仍指向其他实例。
有一种解决方法,但我怀疑您对此不会满意:
public class Test
{
public string mystr;
}
Test myTest1 = new Test { myStr = "Hello" };
Test myTest2 = myTest1;
现在,如果更改
myTest1.myStr
,变量myTest2.myStr
也将被修改,但这仅仅是因为myTest1
和myTest2
是相同的实例。还有其他类似的解决方案,但所有解决方案都归结为同一方面:一个持有对字符串的引用的类。
关于c# - C#对象引用:我该怎么做?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16460962/