【问题标题】:C# naming conflict: My class "Tag" conflicts with "object Control.Tag"C# 命名冲突:我的类“Tag”与“object Control.Tag”冲突
【发布时间】:2021-10-07 07:47:49
【问题描述】:

我的 VS C# 项目中有一个名为“Tag”的自定义类。我尝试在 WinForm 表单中访问其静态方法,如下所示:

Tag.someMethod()

VisualStudio 将“Tag”解释为“object Control.Tag {get; set;}”。这似乎很愚蠢,但我不确定它是否应该发生以及如何解决它。我不想重命名我的班级,我喜欢这个短名字。另外我不想使用我的项目的命名空间来引用它,它太长了。有什么办法可以强制 VS 将“Tag”识别为我的自定义类?

【问题讨论】:

  • 是的,如果您在当前类上有一个名为Tag 的属性,以及一个也称为Tag 的单独类,C# 编译器将更喜欢该属性。解决方法是使用(部分)命名空间,或者通过重命名给它另一个名称,或者给它一个别名 (using X = Tag;)
  • 如何将您的课程重命名为更具描述性的名称?平淡无奇的名称通常是要避免的,简洁并不总是与清晰相关

标签: c# winforms naming


【解决方案1】:

如果命名空间很大,您可以为命名空间使用别名,然后在代码中使用它。

using Project = PC.MyCompany.Project;
Project.Tag.someMethod();

【讨论】:

    猜你喜欢
    • 2021-11-22
    • 2018-12-11
    • 1970-01-01
    • 2012-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-08
    相关资源
    最近更新 更多