C# 命名空间:在两个具有相同名称的相同命名空间中调用一个方法
C# namespaces: Calling a method in two identical namespaces with same name
我正在尝试了解 C# 命名空间。假设存在两个名称相同的命名空间并且它们具有相同的内容,即所有 classes 和方法也具有相同的名称。如果我尝试调用一个方法,编译器如何区分这两者,例如命名空间 MyNamespace 中 class MyClass 中的 MyMethod?这不太可能是真实场景,但我发现这些信息有助于理解。
第二个问题:当我点在命名空间上时,例如系统,我得到了一组相关的命名空间,如 System.Configuration 等,但是当我转到 Microsoft's documentation 时,我找不到任何名为 Configuration 的命名空间包含在系统命名空间中。这是为什么?如果我查找 System.Configuration,我当然可以找到命名空间,但我不明白为什么 System.Configuration 命名空间没有嵌套在 System 命名空间中。
如果您有两个类型,它们具有相同的名称和相同数量的类型参数,并且存在于相同的命名空间中,那么它们所在的 assemblies 必须不同。
如果您的项目引用了一种类型所在的程序集,但没有引用另一种类型,那么您显然只能引用来自您引用的程序集的类型。如果您的项目引用了这两个程序集,则会出现编译器错误,例如 this. To fix it, you can use an extern alias.
无法在 this page is merely due to how Microsoft organises their documentation. They have decided to list all the namespaces out here 中找到 System.Configuration
,而不是显示层次结构。请注意,System.Configuration
是 .NET 平台扩展的一部分,而不是普通的旧 .NET,因此您必须在下拉列表中选择它。
我正在尝试了解 C# 命名空间。假设存在两个名称相同的命名空间并且它们具有相同的内容,即所有 classes 和方法也具有相同的名称。如果我尝试调用一个方法,编译器如何区分这两者,例如命名空间 MyNamespace 中 class MyClass 中的 MyMethod?这不太可能是真实场景,但我发现这些信息有助于理解。
第二个问题:当我点在命名空间上时,例如系统,我得到了一组相关的命名空间,如 System.Configuration 等,但是当我转到 Microsoft's documentation 时,我找不到任何名为 Configuration 的命名空间包含在系统命名空间中。这是为什么?如果我查找 System.Configuration,我当然可以找到命名空间,但我不明白为什么 System.Configuration 命名空间没有嵌套在 System 命名空间中。
如果您有两个类型,它们具有相同的名称和相同数量的类型参数,并且存在于相同的命名空间中,那么它们所在的 assemblies 必须不同。
如果您的项目引用了一种类型所在的程序集,但没有引用另一种类型,那么您显然只能引用来自您引用的程序集的类型。如果您的项目引用了这两个程序集,则会出现编译器错误,例如 this. To fix it, you can use an extern alias.
无法在 this page is merely due to how Microsoft organises their documentation. They have decided to list all the namespaces out here 中找到 System.Configuration
,而不是显示层次结构。请注意,System.Configuration
是 .NET 平台扩展的一部分,而不是普通的旧 .NET,因此您必须在下拉列表中选择它。