相关疑难解决方法(0)

为什么Array.Length是int,而不是uint

为什么是Array.Lengthint,而不是uint.这让我感到困扰(只是一点点),因为长度值永远不会是负数.

这也迫使我在我自己的类上使用int作为length-property,因为当你指定一个int值时,这需要显式地转换...

所以最终的问题是:对于unsigned int(uint)有什么用?甚至微软似乎也没有使用它们.

.net c# int uint

87
推荐指数
2
解决办法
1万
查看次数

为什么.NET在某些类中使用int而不是uint?

即使在框架类中,我总是遇到int用于.Count等等的代码而不是代码uint.

这是什么原因?

.net c#

50
推荐指数
3
解决办法
4505
查看次数

使用uint或int

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

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

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

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

public static double GetDistributionDispersion(int tokens, int[] positions)
Run Code Online (Sandbox Code Playgroud)

参数tokens和所有元素positions都不能为负数.如果它是否定的,最终结果是无用的.因此,如果我同时使用intfor tokenspositions,我必须在每次调用此函数时检查值(如果发现负值,则返回非感知值或抛出异常),这很乏味.

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

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

总而言之,我该怎么办?

我可以提供两种情况:

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

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

彼得

PS:我做了很多研究,仍然没有理由说服我不要使用uint:-)

c# int uint

10
推荐指数
1
解决办法
1476
查看次数

标签 统计

c# ×3

.net ×2

int ×2

uint ×2