如何在单个C#函数中为两个或多个不同的变量使用相同的名称?

时间:2014-10-20 19:16:45

标签: c# variables scope identifier

如何删除曾声明和定义的变量?

例如,在C ++中我会这样做:

int x;

..

delete x;

我怎样才能在C#中做到?

(我需要做这样的事情:

switch (something)
{
case 1:
int Number;
break;

case 2:
float Number;
break;
}

但是我不能这样做,因为数字已经被案例1占用了...而且我想要相同的名字,所以我想在声明浮点数之前删除int Number,因此compilator赢了'对我大喊大叫。 ; P

1 个答案:

答案 0 :(得分:7)

您可以使用大括号使范围不重叠:

switch (something)
{
  case 1: {
    int Number;
  }
  break;

  case 2: {
    float Number;
  }
  break;
}

超出范围是变量名称在您谈论的意义上被“删除”的唯一方法。值得注意的是,与其他一些语言不同,C#不允许将局部变量与其他变量隐藏在更有限的范围内 - 范围必须是非重叠的(在C#中,这意味着从开头括号,而不仅仅是声明点) !)。我的意思是这个代码在C和C ++中是合法的(不确定Java)将导致C#中的编译器错误:

int Number;
{
    float Number;
}