为什么类成员的名称不能与其嵌套类之一相同?

2023-12-30

或者为什么以下是不可能的:

class Material
{
    class Keys
    {
        ...
    }

    Material.Keys Keys { get; set; } // Illegal
}

我没有看到任何可能的歧义。当被实例访问时,返回该属性。静态访问时,返回类。或者我错过了什么?

我并不是要求“修复”(我知道我可以以不同的方式命名它,例如 MaterialKeys 等),但更多的是此限制背后的技术原因。


但想象一下你有这个:

class Material
{
    class Keys
    {
        ...
    }

    static Material.Keys Keys = new Keys();
}

现在两者都处于“静态”范围。现在,编译器可以在所有情况下消除歧义吗?如果不是,那就不能允许这样做。

我认为消歧可能适用于静态字段/属性/方法,而不适用于成员。或者反过来。如果是这种情况,您是否希望语言规范允许实例成员与内部类具有相同的名称,但不允许它用于静态?那只会令人困惑。

但是,无论如何,让一个成员与内部类的名称匹配是相当令人困惑的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么类成员的名称不能与其嵌套类之一相同? 的相关文章

随机推荐

  • 读取 Spring boot fat jar 内的文件

    我们有一个 Spring Boot 应用程序 它有一个遗留的 jar api 我们使用它需要使用 InputFileStream 加载属性 我们将旧版 jar 包装在 Spring Boot Fat jar 中 属性文件位于 BOOT IN
  • 将outputStream转换为字节数组[重复]

    这个问题在这里已经有答案了 如何获取输出流的字节 或者如何将输出流转换为字节数组 从理论角度来看 即 无论作为用例在实践中是否有意义 这是一个有趣的问题 本质上需要实现类似的方法 public abstract byte convert O
  • 如何使用 UIBezierPath 裁剪图像?

    我想从UIBezierpath闭合路径 见图 我将图像绘制在UIView using drawRect方法并绘制线条正在使用drawRect方法 如何获得特定的闭合路径图像 请帮我 提前致谢 此代码用于绘制 uibezierpath UIB
  • TYPO3 中的 eID 是什么?

    我已经多次遇到这个词了 通常 资源会直接解释如何做某事 但没有提及这是什么或它的用途 另外 很多资源都是德语的 或者不是很清楚 So 什么是 eID 这是 TYPO3 特有的东西还是一般概念 你能用它做什么 这对于 TYPO3 gt 9 仍
  • Python 中的顶级语句是什么?

    在 Python 指南的章节中项目结构 http docs python guide org en latest writing structure html中 高层声明 一词被多次提及 我不确定这到底指的是什么 我的猜测是 在加载模块后立
  • 迄今为止的字符串有时完整的日期存在有时我只在java中得到年份

    因此 我正在解析 json 有时我收到的包含日期的字符串已满 dd mm yyyy 有时我只收到 yyyy 我似乎无法将其转换为日期 所以如果有人可以提供帮助 根据您的业务需求 您可以使用以下命令将月份和日期默认为所需值DateTimeFo
  • 将 gitlab wiki 镜像到 github

    我们正在私有 GitLab 服务器上开发一个软件 外部没有人可以访问此服务器 现在我们必须以某种方式让我们的软件可供所有人使用 我们的想法是将存储库镜像到 GitHub 根据我们所做的一些研究 这应该是可能的 我们还在 GitLab 中维护
  • 如何将多维数组分配给临时变量?

    我想将静态分配的多维数组分配给临时变量 考虑以下示例 void foo int b 3 2 b 1 1 1 no segmentation fault int main int a 3 2 1 2 11 12 21 22 foo a int
  • Rails 应用程序在 Heroku 上失败:(没有路线匹配 [GET]“/”)

    Rails 和 Heroku 的新手 我正在尝试按照以下中的分步说明部署一个简单的应用程序导轨教程 http ruby railstutorial org ruby on rails tutorial book sec heroku ste
  • 使用 jQuery Deferred 进行错误处理和恢复

    我正在使用 jQuery 并且知道这个问题是因为 jQuery Deferred 实现不符合 Promises A 标准 我不想使用任何其他库来解决这个问题 有了这个 有没有办法从 Deferred fail 回调使我返回到成功链 这可以通
  • QWebInspector 无法正常工作

    我已将 QWebInspector 包含在我的 QT 项目中 并尝试在我的代码中使用它 不完全确定如何使用 因为我对 QT 还很陌生 我得到一个空白的 Web Inspector 屏幕 所以我认为 page 返回 null 我哪里出错了还是
  • 替换特殊字符(破折号)

    我试图用以下方法替换我认为的标准破折号gsub 我正在测试的代码是 gsub ABC reported estimate 但这没有任何作用 我将破折号复制并粘贴到http unicodelookup com 1 http unicodelo
  • Express:提供预压缩的静态资源

    我想预压缩我的静态资产 不包括图像 并为它们提供服务 服务于public文件夹 我有 app use express static path to public 我相信express compress 动态压缩 这似乎对静态资源的服务器 C
  • 数据表列中的逗号和 $

    我有一个包含 4 列的数据表 其中包含货币 目前 我将它们视为普通列 并手动将 附加到每个值 现在我需要将列格式化为包含逗号 有没有插件可以做到这一点 我还想删除手动添加 值 我检查了几个网站 但我真的不明白它们是如何工作的 更新答案以使用
  • 如何向 R 中的 data.frame 添加文档?

    我已经使用 R 一段时间了 我意识到如果您可以附加 data frame 中包含的描述数据 将会有很大帮助 因为您可以在 Rdata 文件中收集所有有用的研究信息 我想添加到我的数据帧信息 就像 iris 显示的信息 描述 iris 数据帧
  • 如何使用 OpenAPI-3.0 表达 JSON-API 稀疏字段集

    我正在为我的 API 实现 OpenAPI 3 0 规范 并且我计划使用稀疏字段集 https jsonapi org format fetching sparse fieldsets作为 GET 的参数 的例子参数 https githu
  • 如何在 Android 中更改 ProgressDialog Spinner 颜色? [复制]

    这个问题在这里已经有答案了 我正在尝试添加自定义的ProgressDialog to my Activity 我成功更改了ProgressDialog字体和背景颜色 但我不知道如何在不使用小部件的情况下更改微调器颜色 谁能帮我 这是我的Ac
  • 是否可以让 Ingress 指向另一个命名空间中的服务?

    我想做的是在default我的其他命名空间中的命名空间和入口指向该服务 我尝试实现如下所示的服务和 Ingress 但没有成功 kind Service apiVersion v1 metadata name serviceX namesp
  • deviceready 处理程序未被调用 ios PhoneGap 3.3.3

    索引 html Phonegap 3 3 3 设备就绪处理程序未被调用 确保您已在 html 中包含phonegap js 或co
  • 为什么类成员的名称不能与其嵌套类之一相同?

    或者为什么以下是不可能的 class Material class Keys Material Keys Keys get set Illegal 我没有看到任何可能的歧义 当被实例访问时 返回该属性 静态访问时 返回类 或者我错过了什么