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

Posted

技术标签:

【中文标题】如何在单个 C# 函数中为两个或多个不同的变量使用相同的名称? [关闭]【英文标题】:How can I use the same name for two or more different variables in a single C# function? [closed] 【发布时间】:2014-12-15 21:13:54 【问题描述】:

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

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

int x;

..

delete x;

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

(我需要这样做:

switch (something)

case 1:
int Number;
break;

case 2:
float Number;
break;

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

【问题讨论】:

delete x; 在 C++ 中并没有我认为你认为的那样...... 简单;你没有。只是以不同的方式命名你的变量。正如@BenVoigt 所说,C++ 中的delete 也不会这样做。请告诉我你没有在 C++ 中删除你的整数,这很奇怪。 你不会在 C++ 中这样做。 C# 对本机类型进行自己的垃圾收集。如果您正在处理一个非本机对象,它们通常带有一个 Dispose() 函数来执行“删除”。在你的情况下,你可能不需要它 @juanchopanza 同意! 【参考方案1】:

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

switch (something)

  case 1: 
    int Number;
  
  break;

  case 2: 
    float Number;
  
  break;

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

int Number;

    float Number;

【讨论】:

问题一开始就想好了,Visual Studio一直哭。 :/ //edit: 哦,等等,我在案例 1 中添加了括号,但在案例 2 中没有,这就是问题所在...:P 谢谢。

以上是关于如何在单个 C# 函数中为两个或多个不同的变量使用相同的名称? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 AWS Elastic Beanstalk 中为多个 grails 环境使用单个 .war?

如何在 GET 方法中为 Spring Boot 控制器类传递多个路径变量?

如何在单个 Scrapy 项目中为不同的蜘蛛使用不同的管道

如何在 Gatling 负载测试中为多个虚拟用户使用单个 OAuth2.0 令牌

如何在django中为问题添加多个表单字段类型的选项?

在单个 Web 应用程序中使用两个或多个不同的前端框架是不是正确?