具有相同名称的类已经存在

本文关键字:存在 | 更新日期: 2023-09-27 18:28:45

我在.NET C#web应用程序中创建了一个名为"Group"的类。

当我尝试在其他类中访问这个类时,我不会遇到任何问题,但是,在我的代码中的某些点上,当我尝试访问同一个类时,它会在lib下引用一个名为"Group"的不同内置类正则表达式

我的问题:如何直接指定我正在尝试访问不同的类?如果在不同的库下有两个类。以同样的方式命名,我只会键入XY分组以指定差异,但我不确定需要键入什么才能访问代码中手动创建的类。

编辑:据我所知,我的web应用程序没有命名空间。我使用WebForms来开发我的网站,因此就我而言,没有创建命名空间。

提前谢谢。

具有相同名称的类已经存在

我如何直接指定我正在尝试访问不同类别的

你可以:

  • 使用完全限定的名称,例如

    MyNamespace.Group x = new MyNamespace.Group();
    
  • 避免为System.Text.RegularExpressions添加using指令,除非您真的需要它(可能完全符合使用条件)
  • 通过using指令使用别名:

    using MyGroup = MyNamespace.Group;
    ...
    MyGroup x = new MyGroup();
    

如果没有名称空间声明,可以只引用global::Group而不是MyNamespace.Group。。。但我怀疑你确实有一个命名空间,如果你还没有,我会敦促你创建一个。

针对这个问题的第一层保护是要小心为类型提供这样的通用名称。这是最好的解决方案。

除此之外,你可以做两件事之一:

  • 完全限定使用它的类型名称。例如MyNamespace.Group
  • 通过using声明一个类型别名。例如using MySpecialGroup = MyNamespace.Group;

您可以使用using指令:

using Group = X.Group;
var group = new Group(); '' default Group class comes from X namespace;
var group2 = new Y.Group();  '' if  you want other class, specify full namespace.

如果你只想在代码中访问你自己的类,你可以用using关键字为它创建一个别名:

using Group = My.Namespace.Group;

(在类的顶部,除了正常的using指令之外)。

否则,总是可以在代码中使用完全限定的名称

var Group = new My.Namespace.Group;