c# - 无法在c#中的块范围之外声明同名的局部变量
问题描述
我有一个非常简单的用例:
class Program
{
private static void Test()
{
{
const bool thing = false;
}
bool thing = true;
}
static void Main()
{
Console.WriteLine("Hello, World!");
}
}
编译此代码时出现此错误:
main.cs(12,14):错误 CS0136:不能在此范围内声明名为“thing”的局部变量,因为它会给“thing”赋予不同的含义,“thing”已在“child”范围内用于表示某事别的
为什么第二个声明会thing
干扰第一个声明?我来自沉重的 C++ 背景,所以我希望这在语义上是相同的:两者按范围分隔。在我看来,const bool thing
外部范围不应该使用。我在这里想念什么?
请注意,我已尽力在 google 上搜索,但不幸的是,我不知道要搜索的正确术语,因此我无法找到其他人尝试此操作的示例。
注意我在 .NET Framework 4.8 上使用 C# 版本 8。
解决方案
推荐阅读
- dart - Flutter - 无法使用 FAB 而不是 TabBar 图标更改选项卡
- sql-server - 如何在 EntityFrameworkCore 中使用差异函数?
- python - Python - 是否可以使用空白列创建连接字符串
- php - 如何从选定的月份获取上个月
- ionic-framework - ionic 3 从标签页到普通页
- c# - 如何从另一个类调用 IWebElement 方法?
- curl - PHP 7.1 oAuth 扩展,带有使用 Curl 的请求引擎支持 - OAUTH_REQENGINE_CURL
- php - .Net 应用程序关闭时使用 PHP 在 SQL Server 2008 上进行缓慢查询
- perl - DBIx::Class::ResultSet::count(): DBI Connection failed: DBD::Oracle at /usr/share/perl5/DBIx/Class/Storage/DBI.pm line 1249
- c# - 为什么serila数据传输会跳过c#中的特定数据模式?