Trong cấu trúc .Net framework DateTime, năm được định nghĩa là int (thực sự là A System.Int32). Tuy nhiên, tài liệu MSDN nói rằng giá trị sẽ luôn là between 1 and 9999. Vì vậy, một ushort (System.UInt16) là nhiều hơn đủ để lưu trữ các giá trị và chiếm một nửa không gian. Vậy tại sao nó là một int và không phải là một ushort?Tại sao DateTime.Now.Year một int và không phải là một ushort
Có chuyển đổi ngầm từ ushort thành int để không có quá trình truyền cần thực hiện để thực hiện số học số nguyên trong năm.
Tôi nhận thấy đây là vấn đề tối ưu hóa vi mô và do đó không quan trọng lắm. Tôi chỉ tò mò thôi.
Đó là * không * tối ưu hóa. Dưới cùng của http://stackoverflow.com/questions/10065287/why-is-ushort-system-uint16-ushort-equal-to-int-system-int32/10157517#10157517 –
Ngay cả với một 'ushort', chúng tôi muốn đang lãng phí hai bit hàng đầu ... – AakashM