-8 c# variables scope identifier
如何删除曾经声明和定义的变量?
例如,在C++中我会这样做:
int x;
..
delete x;
Run Code Online (Sandbox Code Playgroud)
我怎么能在C#中做到这一点?
(我需要做这样的事情:
switch (something)
{
case 1:
int Number;
break;
case 2:
float Number;
break;
}
Run Code Online (Sandbox Code Playgroud)
但是我不能这样做,因为Number已经被case 1占用了...而且我想要相同的名字,所以我想在声明float Number之前删除int Number,所以compilator不会对我大喊大叫.,p
您可以使用大括号使范围不重叠:
switch (something)
{
case 1: {
int Number;
}
break;
case 2: {
float Number;
}
break;
}
Run Code Online (Sandbox Code Playgroud)
超出范围是变量名称在您正在谈论的意义上被"删除"的唯一方法.值得注意的是,与其他一些语言不同,C#不允许将局部变量与其他变量隐藏在更有限的范围内 - 范围必须是非重叠的(在C#中,这意味着从开头括号,而不仅仅是声明点) !).我的意思是这个代码在C和C++中是合法的(不确定Java)将导致C#中的编译器错误:
int Number;
{
float Number;
}
Run Code Online (Sandbox Code Playgroud)