【发布时间】:2011-04-09 04:24:24
【问题描述】:
可能的重复:
Why does .NET use int instead of uint in certain classes?
Why is Array.Length an int, and not an uint
我一直想知道为什么.Count 不是无符号整数而不是有符号整数?
以ListView.SelectedItems.Count 为例。元素个数不能小于0,为什么是signed int呢?
如果我尝试测试是否有选择的元素,我想测试
if (ListView.SelectedItems.Count == 0) {}
但是因为是有符号整数,所以我要测试一下
if (ListView.SelectedItems.Count <= 0) {}
或者有没有.Count可能是
【问题讨论】:
-
我想这是为了方便,因为你不能将 uint 转换为 int 并且大多数人习惯于将 int 用于索引器......
-
你仍然可以测试
== 0,对吧?因为,正如您所指出的,它永远不会小于 0。毕竟,在某些时候,您的代码将做出一些基本假设,即其他人的代码将以成员名称所暗示的方式运行。我想说这使您能够假设Count永远不会小于0,并检查是否相等。