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