C# · 12月 31, 2021

c# – 使用uint或int

当然,我知道无符号整数(uint)和有符号整数(int)之间的基本差异.

我注意到在.NET公共类中,一个名为Length的属性总是使用带符号的整数.

也许这是因为无符号整数不符合CLS.

但是,例如,在我的静态函数中:

public static double GetDistributionDispersion(int tokens,int[] positions)

参数令牌和位置中的所有元素不能为负.如果是负面的,最终的结果是无用的.因此,如果我使用int来代替令牌和位置,我必须在每次调用此函数时检查值(并返回无意义值或抛出异常,如果负值找到???),这是乏味的.

好的,那么我们应该为这两个参数使用uint.这真的对我有意义.

然而,我发现,在很多公共API中,他们几乎总是使用int.这是否意味着他们的实现,他们总是检查每个值的否定性(如果它是非负的)?

所以,一句话,我该怎么办?

我可以提供两种情况:

>这个函数只能在我自己的解决方案中自己调用;
>此功能将被其他团队中的其他人用作库.

我们应该为这两种情况使用不同的方案?

彼得

我做了很多研究,还没有理由说服我不要使用uint