オブジェクトの 2D 位置を格納するために使用しているいくつかの単純なコードの奇妙な動作を経験しています。幅と高さを Double として含むSizeD
というクラスを作成しました。コード:
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)) を読み取ろうとすると、ほとんどの場合に発生します。