我通常用C++编程,但是对于学校我必须用C#做一个项目.
所以我继续进行编码,就像我习惯于使用C++一样,但是当编译器抱怨代码如下时,我感到很惊讶:
const uint size = 10;
ArrayList myarray = new ArrayList(size); //Arg 1: cannot convert from 'uint' to 'int
Run Code Online (Sandbox Code Playgroud)
好吧,他们期望int作为参数类型,但为什么呢?我觉得uint作为参数类型会更舒服,因为uint在这种情况下更适合.
为什么他们在.NET库中几乎无处不在地使用int作为参数类型,即使在很多情况下负数也没有任何意义(因为没有容器或gui元素可以具有负大小).
如果他们使用int的原因是,他们并不期望普通用户关心签名,为什么他们没有为addint添加超载?
这只是MS不关心标志的正确性还是有负值值得一些意义/携带容器/ gui widget/...尺寸的一些信息(错误代码????)?