这是课程考试
public class Test
{
public string mystr;
}
Run Code Online (Sandbox Code Playgroud)
我从方法中调用它:
string my = "ABC";
Test test = new Test();
test.mystr = my;
test.mystr = "";
Run Code Online (Sandbox Code Playgroud)
上面的位代码的结果是: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;
Run Code Online (Sandbox Code Playgroud)
现在,如果你改变了myTest1.myStr,变量myTest2.myStr也会被修改,但这只是因为myTest1和myTest2是相同的实例.
还有其他类似的解决方案,但所有这些都归结为相同的方面:一个持有字符串引用的类.