问题是:在这段代码的末尾,ptArray [0] .X的值是3.33还是1.11?
谢谢.
class MyPoint
{
public double X, Y;
public MyPoint(double x, double y)
{
X = x;
Y = y;
}
}
MyPoint[] ptArray = new MyPoint[2];
ptArray[0] = new MyPoint(1.11, 2.22);
MyPoint first = ptArray[0];
// Am I changing ptArray[0] here or not?
first.X = 3.33;
first.Y = 4.44;
Run Code Online (Sandbox Code Playgroud)
你不是在改变ptArray[0]自己,因为那是对实例的引用MyPoint.但是,您正在更改其引用的对象中的数据.所以,如果你这样做:
first.X = 3.33;
Console.WriteLine(ptArray[0].X);
Run Code Online (Sandbox Code Playgroud)
它确实打印出3.33.
请注意,如果是结构而不是类,则不会出现这种情况MyPoint.虽然拥有可变的结构是另一个痛苦的境界......
| 归档时间: |
|
| 查看次数: |
95 次 |
| 最近记录: |