编程中-1的含义

时间:2013-06-12 20:08:03

标签: c# variables methodology

我不想在这里提出这个问题,但我搜索了SO和Google都没有成功。我在许多地方都看到了诸如while(var != -1)之类的语句和其他语句,通常是循环,包含对-1的某种引用。使用-1是否有某种意义,或者它只是用于给出布尔值的整数表示,或类似的东西?如果有任何帮助,我主要在C#编程中看到过这个。

3 个答案:

答案 0 :(得分:5)

C#-1中的

只是否定的。他们将一个数字与一个数字进行比较,看它是否确实等于负数。

拥有一个只应具有正值的整数字段(例如,在表示列表中的索引时)并不常见,在这种情况下,-1有时用于表示“非有效值”,例如,没有项目,因此没有索引。它们使用-1,因为int不可为空;他们无法分配null

从理论上讲,这可能是一种不好的做法;它使用“神奇的价值”来表示比实际应该更多的东西。理想情况下,如果“无效”是变量表示它的有效内容应该是一个可以为空的整数(int?Nullable<int>),但这是一个旧约定(从其他语言转移而没有可空的整数特征)因此很难完全消除。

答案 1 :(得分:4)

没什么特别的。只是在大多数框架和库中,返回集合中元素索引的函数或方法将返回-1,而当您要查找的内容不在集合中时。

例如,字符串b中的字符foo的索引在JavaScript,.NET中为-1,并且据我记得,也是Java。

许多开发人员在他们的脑海中烧毁了一个rom,说-1是未找到项目的索引。现在你知道了为什么。

答案 2 :(得分:3)

如果你知道一个int应该总是包含正值(例如一个项目计数或列表中的索引,-1可以是一种&#34;保留值&#34;,所以你要分配计数为-1,只要它为-1,你知道没有真正的价值,有点像&#34; null&#34;

除此之外我不认为-1具有任何特殊含义