我遇到了一些我用来存储对象的二维位置的简单代码的奇怪行为。
我创建了一个名为SizeD的类,其中包含 Double 的 Width 和 Height。
代码:
public class SizeD
{
internal Double Width;
internal Double Height;
/// <summary>
/// Creates a new instance of SizeD
/// </summary>
public SizeD(Double Width, Double Height)
{
this.Width = Width; this.Height = Height;
return;
}
}
这是非常直接的,我没想到这门课会发生什么特别的事情。
还有一个包含这些预定义类的静态数组,以便于使用。
代码:
internal static SizeD[] PaperTypeSize = //Converts CM to points.
{
new SizeD(8.5 * 72, 11.0 * 72),
new SizeD(8.5 * 72, 14.0 * 72),
new SizeD(21.0 * (72 / 2.54), 29.7 * (72 / 2.54))
};
我遇到的问题是 SizeD 中的值经常在运行时翻转。
1:宽度 = 宽度,高度 = 高度。
2:宽度 = 高度和高度 = 宽度。
重复模式 (1,2,1,2,1,2) 等也会发生这种情况。
有人可以向我解释这里发生了什么吗?
谢谢你的时间!
编辑: 它主要发生在尝试读取此值 SizeD(21.0 * (72 / 2.54), 29.7 * (72 / 2.54)) 时。