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

本文关键字:变量 一个 函数 两个 | 更新日期: 2023-09-27 18:27:09

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

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

int x;
..
delete x;

我如何在C#中做到这一点?

(我需要做这样的事情:

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

但我做不到,因为Number已经被大小写1占用了……我想要相同的名称,所以我想在声明float Number之前删除int Number,这样编译人员就不会对我大喊大叫了;p

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

您可以使用大括号使作用域不重叠:

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

超出作用域是从您所说的意义上"删除"变量名的唯一方法。值得注意的是,与其他一些语言不同,C#不允许将局部变量与其他变量隐藏在更有限的作用域中——作用域必须不重叠(在C#中,这意味着从大括号开始,而不仅仅是声明点!)。我的意思是,这段代码在C和C++中是合法的(对Java不确定),它将导致C#中的编译器错误:

int Number;
{
    float Number;
}