关于c#:为什么DateTime的AddMonths函数采用Int32参数而不是Int16

Why does DateTime's AddMonths function takes Int32 parameter and not Int16

我对这件事很好奇

英特32

1
2
int addmonths_int = 10;
DateTime.Now.AddMonths(addmonths_int);

因特16

1
2
short addmonths_short = 10;
DateTime.Now.AddMonths(addmonths_short);

如果我们可以在AddMonths函数中把Int16作为参数,而且月份的值也不能超过12,那么为什么.NET Framework使用月份作为Int32而不是Int16

如果宣布月份为Int16有文化方面的问题…!!!???!!!

我在这里想,如果monthInt16,那么它在某些地方可以节省一些长度。我想是Memory Allocation

更新

what would be the suggestion for DateTime.Now.Month property couldn't it be Int16 instead of Int32 ??

< /块引用>

都是一样的吗??


首先,可能超过12个月。没有什么能阻止你计算日期加上435345个月。

至于int32选项:int32是32位系统的本机整数数据类型,因此它是最有效的数据类型。


If we could give Int16 as Parameter in the AddMonths function and also the month's value can never be more than 12 then why do .NET Framework uses the month as Int32 and not Int16...

为什么你不能在今天加上13个月,到2012年6月25日结束呢?


您可以使用add months函数为给定日期添加超过12个月的时间。

但实际限制如下:

Months value must be between +/-120000


您的假设不正确:

also the month's value can never be
more than 12

即使您是正确的,我认为它也不会给您带来太多使用16位整数而不是32位整数的好处:也许日期时间对象的大小根本不会改变。