Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
vb.net系统命名空间与同级命名空间冲突_.net_Vb.net_Namespaces - Fatal编程技术网

vb.net系统命名空间与同级命名空间冲突

vb.net系统命名空间与同级命名空间冲突,.net,vb.net,namespaces,.net,Vb.net,Namespaces,我的解决方案中有一个类EventArgs(Of T)。 此类位于命名空间Acme.Infrastructure.Interface 系统命名空间中存在同名的类EventArgs 在我的解决方案的另一个项目中,我有一个类Acme.BusinessModules.MyModule.MyClass 尝试使用EventArgs类时,我必须完全限定类名,否则编译器会认为我在使用System.EventArgs类 我对名称空间解析的理解是,编译器将首先在当前名称空间中查找类,然后查找其父类。编译器似乎在签入

我的解决方案中有一个类
EventArgs(Of T)

此类位于命名空间
Acme.Infrastructure.Interface

系统
命名空间中存在同名的类
EventArgs

在我的解决方案的另一个项目中,我有一个类
Acme.BusinessModules.MyModule.MyClass

尝试使用
EventArgs
类时,我必须完全限定类名,否则编译器会认为我在使用
System.EventArgs

我对名称空间解析的理解是,编译器将首先在当前名称空间中查找类,然后查找其父类。编译器似乎在签入同级名称空间之前先签入
System


在兄弟姐妹之前检查系统是否正确?或者这种行为是由其他问题(导入顺序)引起的?

请查看所涉及的名称空间:

  • Acme.BusinessModules.MyModule
  • Acme.Infrastructure.Interface
Acme.BusinessModules.MyModule
中编译类时,编译器没有理由查看
Acme.Infrastructure.Interface
。现在,如果您正在编写的代码位于(比如)Acme.Infrastructure.Interface.SomethingElse中,那么这将是一个不同的问题-但在这里,编译器似乎做了完全正确的事情。两个名称空间都以
Acme
开头这一事实既不存在也不存在

正如你自己所说:

我对名称空间解析的理解是,编译器将首先在当前名称空间中查找类,然后查找其父类

这里的祖先名称空间是
Acme.BusinessModules
Acme
——而不是
Acme.Infrastructure.Interface


我还强烈建议您不要创建与
系统
中的类名冲突的类名。这真的只是自找麻烦。

看看所涉及的名称空间:

  • Acme.BusinessModules.MyModule
  • Acme.Infrastructure.Interface
Acme.BusinessModules.MyModule
中编译类时,编译器没有理由查看
Acme.Infrastructure.Interface
。现在,如果您正在编写的代码位于(比如)Acme.Infrastructure.Interface.SomethingElse中,那么这将是一个不同的问题-但在这里,编译器似乎做了完全正确的事情。两个名称空间都以
Acme
开头这一事实既不存在也不存在

正如你自己所说:

我对名称空间解析的理解是,编译器将首先在当前名称空间中查找类,然后查找其父类

这里的祖先名称空间是
Acme.BusinessModules
Acme
——而不是
Acme.Infrastructure.Interface


我还强烈建议您不要创建与
系统
中的类名冲突的类名。这真的是自找麻烦。

好吧,那只是我当时对名称空间系统的误解,是时候读一读了。具有相同名称的类是由SCSF创建的@DaSilva_Ireland:我从未使用过SCSF,但您应该绝对了解是否可以禁用该类生成(或者,如果是一次性的,就删除它)。这只会给你带来痛苦。好吧,那只是我当时对名称空间系统的误解,是时候做一些阅读了。具有相同名称的类是由SCSF创建的@DaSilva_Ireland:我从未使用过SCSF,但您应该绝对了解是否可以禁用该类生成(或者,如果是一次性的,就删除它)。这只会给你带来痛苦。