0

データをホストする SQL テーブルから最小年を取得するメソッドを作成していましたが、スペースとメモリを節約するために、int16 の戻り値の型でメソッドを作成しました。DateTime オブジェクトの Year、Month、および Day プロパティが int 32 型であることに驚きました。これは役に立たず、メモリの無駄だと思います。Microsoft が int16 ではなく int32 として宣言した理由はありますか。

4

2 に答える 2

5

.Net DateTime 構造体の内部表現は d/m/y/s ではなく、エポック以降のティック数を表す 64 ビット整数です。

プロパティは、操作が簡単で、通常は処理が最も安価なデータ型であるため、整数として返されます。

于 2013-07-30T08:29:33.670 に答える
2

DateTimeプロパティのタイプに関係なく、単一の 64 ビット値です。年、月、日はその値の中に詰め込まれており、 even よりもはるかに少ないスペースしか必要としませんInt16

Int32現在、ほとんどの CPU はネイティブの整数サイズ (int32/int64) を小さいサイズよりも適切に処理しているため、プロパティから以外の値を返すメリットはあまりありません。

結果の値を「日の配列」のようなものに実際に保存する必要がある場合は、結果の値をより小さな型に保存できますが、パフォーマンスへの影響を測定することをお勧めします-驚くべき結果が見つかるかもしれません...

于 2013-07-30T08:31:28.170 に答える