繁体   English   中英

C# 命名空间:在两个具有相同名称的相同命名空间中调用方法

[英]C# namespaces: Calling a method in two identical namespaces with same name

我正在尝试了解 C# 名称空间。 假设存在两个同名的名称空间并且它们具有相同的内容,即所有类和方法也具有相同的名称。 如果我尝试调用命名空间 MyNamespace 中的方法,例如 class MyClass 中的 MyMethod,编译器如何区分两者? 这不太可能是真实场景,但我发现这些信息对于理解目的很有用。

第二个问题:当我在命名空间(例如System)上打点时,我得到了一组相关的命名空间,如System.Configuration 等,但是当我go 到Microsoft 的文档时,我找不到任何名为Configuration 的命名空间包含在System 命名空间中。 这是为什么? 如果我查找 System.Configuration,我当然可以找到命名空间,但我不明白为什么 System.Configuration 命名空间没有嵌套在 System 命名空间内。

如果您有两个类型,它们具有相同的名称和相同数量的类型参数,并且存在于相同的命名空间中,那么它们所在的程序集必须不同。

如果您的项目引用了一种类型所在的程序集,但没有引用另一种类型,那么您显然只能引用来自您引用的程序集的类型。 如果您的项目引用了这两个程序集,则会出现编译器错误,如下所示 要修复它,您可以使用外部别名

无法在此页面中找到System.Configuration仅仅是由于 Microsoft 组织其文档的方式。 他们决定在这里列出所有名称空间,而不是显示层次结构。 请注意, System.Configuration是 .NET 平台扩展的一部分,而不是普通的旧 .NET,因此您必须在下拉列表中选择它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM