En la estructura DateTime de .Net framework, Year se define como int (que en realidad es A System.Int32). Sin embargo, la documentación de MSDN dice que el valor siempre será between 1 and 9999. Por lo tanto, un ushort (System.UInt16) es más que adecuado para almacenar el valor y ocupa la mitad del espacio. Entonces, ¿por qué es un int y no un ushort?¿Por qué DateTime.Now.Year es int y no ushort
Hay una conversión implícita de ushort a int, por lo que no es necesario realizar una conversión para hacer una aritmética de enteros en el año.
Me doy cuenta de que esto es un problema de micro-optimización y por lo tanto no es muy importante. Tengo curiosidad.
Es * no * es una optimización. Abajo de http://stackoverflow.com/questions/10065287/why-is-ushort-system-uint16-ushort-equal-to-int-system-int32/10157517#10157517 –
Incluso con un 'ushort', tendríamos estar desperdiciando los dos mejores bits ... – AakashM