已有类的名称

问题描述:

我在.NET C#web应用程序中创建了一个名为“Group”的类。已有类的名称

当我尝试在其他类中访问此类时,我没有遇到任何麻烦,但是,在我尝试访问同一个类时,在代码中的某些点上,它引用了另一个内置类“ 集团“太低了。 正则表达式

我的问题:如何直接指定我正在尝试访问不同的类?如果在不同的库下有两个类。以同样的方式命名,我只想输入XYGroup为了指定区别,但我不知道我需要键入什么才能访问我的代码中手动创建的类。

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

在此先感谢。

+1

指定您的班级的全名 - 与所有命名空间 – IVAAAN123 2014-10-31 07:53:09

+0

@ IVAAAN123请阅读帖子编辑。 – 2014-10-31 07:58:55

+0

如果你没有命名空间,那么你应该创建它们 – IVAAAN123 2014-10-31 08:11:16

我如何可以直接指定,我试图访问一个不同的类

,你可以:

  • 使用完全合格的名称,例如

    MyNamespace.Group x = new MyNamespace.Group(); 
    
  • 避免增加一个using指令为System.Text.RegularExpressions,除非你真的需要它(那不是可能完全合格的用途)
  • 通过using指令使用别名:

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

如果您没有命名空间声明,则可以参考global::Group而不是MyNamespace.Group ......但我怀疑你是有一个命名空间,我会敦促你创建一个,如果你还没有。

+0

请看看我的编辑。 – 2014-10-31 07:59:40

+0

@TommyNaidich:如果你没有命名空间,我会感到非常惊讶 - 如果你现在没有,我强烈建议你*做*。查看代码隐藏以尝试查找名称空间声明。有一个替代方案,我会添加到我的答案。 – 2014-10-31 08:00:52

+0

您提出的“global :: Group”方法对我来说完美无缺。至于第二点 - 我从来不必为我的Web应用程序创建一个名称空间,我也无法看到在此特定项目中做到这一点的真正原因。当我需要访问我的类时,为什么不简单地使用“global :: Group”,而不是为我的类指定一个全新的名称空间,然后更改我的项目中的每条代码行以适应适当的更改? 答案很快就会被接受,谢谢您的输入。 – 2014-10-31 08:05:27

如果你只是想访问的代码你自己的类,你可以为它创建与using关键字的别名:

using Group = My.Namespace.Group; 

(在你的类的顶部,除了正常使用的指令) 。

否则,它总是能够在代码中使用完全合格的名称

var Group = new My.Namespace.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. 
+0

请看看我的编辑请。 – 2014-10-31 08:00:48

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

除非这一点,那么你可以做两件事情之一:

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

请看看我的编辑。 – 2014-10-31 07:59:55