Sha*_*XOR 5 .net c# windows .net-3.5 winforms
我正在通过Head First C#工作,我对目前的练习感到有些困惑.他们说:
如果你在for循环中声明一个变量 - for(int c = 0; ...) - 那么该变量只在循环的花括号内有效.因此,如果你有两个使用变量的for循环,你要么在每个循环中声明它,要么在循环外有一个声明.如果变量c已经在循环之外声明,则不能在任何一个中使用它.
这听起来与我相矛盾,几乎就像说你只能在外面宣布它,但如果你在外面宣布它就不能使用它.
你也可以,或者不是吗?我尝试在两个单独的for循环中声明c并且它工作正常,但是当在for循环之外声明c时,我找不到任何方法来引用两个for循环中的变量c,而它也在外面声明,无论我是否尝试改变它的价值与否.这不是练习所必需的,我只是试图吸收我遇到的每一点知识并试图超越材料.
这本书可能让我感到困惑,所以如果这是不可能的并且完全没必要,请告诉我,谢谢!
问题是范围界定.请阅读此处,了解有关变量作用域如何在C#中工作的一些细节.
如果在循环外声明变量,则无法在内部重新声明:
坏的:
int c = 0;
for(int c = 0; c < list.Count; c++) // Error!
{
}
Run Code Online (Sandbox Code Playgroud)
好的:
在外面声明,用于内部:
int c = 0;
for(c = 0; c < list1.Count; c++)
{
}
for(c = 0; c < list2.Count; c++)
{
}
Run Code Online (Sandbox Code Playgroud)
在两个循环中声明:
for(int c = 0; c < list1.Count; c++)
{
}
for(int c = 0; c < list2.Count; c++)
{
}
Run Code Online (Sandbox Code Playgroud)