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

-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

Ben*_*igt 7

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

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)