【发布时间】:2013-12-21 23:18:37
【问题描述】:
我的情况很奇怪。我有一个有几个成员的类,如下所示:
public class myMainClass
{
public aClass myObject = new aClass();
private int numberOfUpdates = 0;
public anotheClass.memberClass anotherObject = new anotheClass.memberClass();
请注意,anotherClass 在其中定义了一个类。 (不确定这是否会导致我遇到的问题)。
aClass 和 anotheClass.memberClass 都有一个同名成员 ThisMember。
我在myMainClass 中还有一个方法,它对myMainClass 对象的成员进行了一些修改:
public void Update(double aPassedInNumber)
{
anotherObject.ThisMember = aPassedInNumber;
//etc
}
我只修改了那个成员。但是,当我这样做时,myObject.ThisMember also 会被修改为相同的值!就好像 (??) 两个成员变量在内存中占据相同的位置。或者那个在某种程度上是对另一个的引用。
好像我已经完成了:
public void Update(double aPassedInNumber)
{
anotherObject.ThisMember = aPassedInNumber;
myObject = aPassedInNumber;
//etc
}
但我不是。我只进行了第一次赋值,但两个变量都被修改了。
我已经对此进行了跟踪并打印了诊断信息并使用了监视窗口,它清楚地修改了这两个变量。
怎么可能?我究竟做错了什么?我该如何解决?
【问题讨论】:
-
您能否发布一个完整的工作示例,并告诉我们这是什么语言?
-
其中一个成员是静态的吗?