我确实知道无符号整数(uint
)和有符号整数(int
)之间的基本区别。
我注意到在.NET公共类中,一个名为Length
的属性总是使用有符号整数。
也许这是因为无符号整数不符合CLS标准。
但是,在我的静态函数中:
public static double GetDistributionDispersion(int tokens, int[] positions)
参数tokens
和 positions
中的所有元素都不能为负数。如果为负数,则最终结果将无用。因此,如果我对tokens
和positions
均使用int
,则每次调用此函数时都必须检查值(如果发现负值,则返回无意义的值或引发异常???),这很繁琐。好吧,那么我们应该为两个参数都使用
uint
。这对我来说真的很有意义。然而,我发现在许多公共API中,它们几乎总是使用
int
。这是否意味着在他们的实现内部,他们始终检查每个值(如果应该是非负数)的负性?总之,我该怎么办?
我可以提供两种情况: 1. 此函数只由我自己在自己的解决方案中调用; 2. 此函数将被其他团队中的人用作库。
对于这两种情况,我们应该使用不同的方案吗?
Peter P.S .: 我确实做了很多研究,但仍然找不到不使用
uint
的理由 :-)
uint
。 - Peter Lee