这是一个简单的代码段
public static void Foo(string s)
{
int a = 0;
int b = s.Length - 1;
}
Visual Studio的intellisense在a
下绘制绿色波浪线,显示它已分配但从未使用过。但它并没有对b
这样做。
为什么?到目前为止,我还没有使用过b
,对吗?
答案 0 :(得分:1)
未使用a
是警告CS0219的实例。
a
被赋予一个常量值是完全没有意义的,所以最多你应该删除它但也更糟(因此警告有用的原因)你确实有一个很好的理由来分配一个值a
但是犯了一些错误,所以有一个警告和一条绿线(如果你有警告 - 如错误,则为红线)。
b
也未被使用,但更有可能达到目的。请考虑以下内容不是有效的C#语句:
s.Length - 1;
甚至:
s.Length;
大多数情况下,将属性的值赋给变量并且不使用它仍然不是很有用,但我们偶尔需要调用属性来产生副作用(很多不好的标志)时间,所有相同,由于其他原因,但仍然)左右我们可以在调试时检查结果。
因此,这不是一个警告案例,因为它更有可能出于某种充分的理由。 (如果你有Visual Studio的版本将未使用的变量变为灰色,那么它仍然是灰色的,我不记得他们是否都这样做了。)