我在Windows GUI上有一个DateTimePicker (dtpDate)
,在代码后面定义了另一个DateTimePicker (trackDate)
。
由于某些原因,当我使用trackDate = dtpDate;
时,我对trackDate所做的任何更改都会影响dtpDate。
为什么会这样?我不相信它应该继续引用dtpDate。
我试过了
DateTimePicker trackDate
和DateTimePicker trackDate = new DateTimeTracker();
欢迎任何帮助。
感谢。
答案 0 :(得分:4)
出于某种原因,当我使用
trackDate = dtpDate;
时,我对trackDate
所做的任何更改也会影响dtpDate
。
是的。那是因为两个变量现在引用同一个对象,因为DateTimePicker
是一个类。
作为一个更简单的例子:
StringBuilder x = new StringBuilder();
StringBuilder y = x;
x.Append("Foo");
Console.WriteLine(y); // Prints Foo
非常重要的是你理解这一点。它影响你在C#中所做的一切。请阅读value types and reference types上的文章了解更多详情。
如果您只想将值从DateTimePicker
复制到另一个trackDate.Value = dtpDate.Value;
,请使用:
{{1}}
如果您正在尝试做其他事情,您需要向我们提供这些信息......