为什么C#容器和GUI类对于大小相关的成员使用int而不是uint?

前端之家收集整理的这篇文章主要介绍了为什么C#容器和GUI类对于大小相关的成员使用int而不是uint?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我通常在C程序,但对于学校我必须在C#中做一个项目.

所以我继续前进编码像我习惯于C,但是当编译器抱怨代码如下所示感到惊讶:

const uint size = 10;
        ArrayList myarray = new ArrayList(size); //Arg 1: cannot convert from 'uint' to 'int

好的,他们期望int作为参数类型,但为什么?我会以uint作为参数类型感觉更舒服,因为在这种情况下,uint适合更好.

为什么在.NET库中使用int作为参数类型,即使在许多情况下,负数也没有任何意义(因为没有容器或gui元素可以有负的大小).

如果他们使用int的原因是他们没有预期平均用户关心签名,为什么不添加额外的负载超负荷?

这只是MS不关心符号正确性,还是有负数值有意义/携带某些信息(错误代码????)容器/ gui小部件/尺寸?

解决方法

我可以想象,微软选择了Int32,因为UInt32不符合CLS(换句话说,并不是所有使用.NET框架的语言都支持无符号整数).

猜你在找的C#相关文章