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