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