这是班考

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 = ""

最佳答案

如果我理解正确,您希望链接变量mytest.myStr,因此,如果其中一项发生变化,另一项发生变化?

答案很简单:不可能!

字符串是不可变的类。多个引用可以指向一个字符串实例,但是一旦修改了该实例,就会使用新值创建一个字符串实例。因此,将新引用分配给变量,而其他变量仍指向其他实例。

有一种解决方法,但我怀疑您对此不会满意:

public class Test
{
    public string mystr;
}

Test myTest1 = new Test { myStr = "Hello" };
Test myTest2 = myTest1;


现在,如果更改myTest1.myStr,变量myTest2.myStr也将被修改,但这仅仅是因为myTest1myTest2是相同的实例。

还有其他类似的解决方案,但所有解决方案都归结为同一方面:一个持有对字符串的引用的类。

关于c# - C#对象引用:我该怎么做?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16460962/

10-11 19:28
查看更多