C# 在基类中生成枚举的别名

C# 在基类中生成枚举的别名,c#,enums,alias,C#,Enums,Alias,比如说,我有enum: MyNameSpace.MyLongEnumName { Green, Red } 如何在基本类(即a类)中创建该枚举的简写,以便在派生类(如b类)中轻松使用它 i、 e.第一委员会: 第二点: p、 这里的要点是避免使用。。。在派生类的.cs文件的顶部。我不确定您想要实现什么 比如说 namespace MyCompany.MyProduct.MyServices.MyColorService.Enums { public enum Color {

比如说,我有enum:

MyNameSpace.MyLongEnumName { Green, Red }
如何在基本类(即a类)中创建该枚举的简写,以便在派生类(如b类)中轻松使用它

i、 e.第一委员会:

第二点:


p、 这里的要点是避免使用。。。在派生类的.cs文件的顶部。

我不确定您想要实现什么

比如说

namespace MyCompany.MyProduct.MyServices.MyColorService.Enums
{
    public enum Color
    {
        Green,
        Red
    }
}
现在我们要使用它:

using MyCompany.MyProduct.MyServices.MyColorService.Enums;

public class Foo
{
    public void Bar()
    {
        var currentColor = Color.Green;
    }
}
将此与:

public class Foo
{
    public void Bar()
    {
        var currentXx = xx.Green;
    }
}
在第一个示例中,我立即看到它是一种颜色。绿色的那个。我马上就明白了,这是我们的定制颜色,而不是System.Drawing中的颜色。 关于第二个例子,我只知道,它是某某绿色的xx?是绿色士兵吗?它对环境友好吗? 无论你试图做什么,都会让事情变得更糟

这里的要点是避免使用xx=MyNameSpace.MyLongEnumName;在派生类的.cs文件的顶部

名称空间不是这样工作的。名称空间存在,以确保与其他库没有命名冲突。他们在这里,以确保您正在操作您真正想要的类型。这就是为什么派生类也有自己的命名空间

或者换句话说:你想要实现的是不可能的。即使在可能的情况下,它也可能让事情变得更糟

Tldr:确保你组织了你的代码。在过于冗长的名称和过于简单的名称之间建立平衡

除此之外,输入颜色,将光标置于其上,然后按ctrl+,然后输入。如果名字模棱两可,你会注意到或提供一份清单。我们还有一些工具,比如,在使用intellisense时导入名称空间

在类声明中不能使用这样的指令。使用指令必须位于名称空间内外的所有其他元素之前,例如类或其他枚举。因此,您可以将using指令移动到类a声明之上,同时仍将其保留在Foo名称空间中。但是,这对派生类的源文件没有帮助。好吧,尽管运气好,我想…:-var myProperty=MyNameSpace.MyLongEnumName.Green有什么问题?我的意思是,您可以使用MyNameSpace将其短缩为var myProperty=MyLongEnumName.Green;
using MyCompany.MyProduct.MyServices.MyColorService.Enums;

public class Foo
{
    public void Bar()
    {
        var currentColor = Color.Green;
    }
}
public class Foo
{
    public void Bar()
    {
        var currentXx = xx.Green;
    }
}