可以说,我有枚举:
MyNameSpace.MyLongEnumName { Green, Red }
如何在基类(即a
)中创建该枚举的简写,以便可以在派生类(例如b
)中轻松使用它?
即first.cs
:
namespace Foo
{
public class a
{
// phseudo-code,like:
using xx = MyNameSpace.MyLongEnumName;
}
}
second.cs
:
namespace Foo
{
public class b : a
{
// phseudo-code,like:
xx myProperty = xx.Green;
}
}
p.s。这里的主要目的是避免在派生类的using ...
文件的顶部使用.cs
。
答案 0 :(得分:0)
我不确定您要实现什么目标。
例如
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
中的颜色。green
中的某个xx
?是绿色士兵吗?它对环境友好吗?无论您想做什么,都会使事情变得更糟。
此处的主要目的是避免在派生类的.cs文件顶部使用
using xx = MyNameSpace.MyLongEnumName;
。
这不是名称空间的工作方式。确保有命名空间,并且与其他库没有命名冲突。它们在这里,以确保您使用的是您真正想要的类型。这就是为什么派生类还具有自己的名称空间的原因。
或者换句话说:不可能实现的目标。即使有可能,也可能使情况变得更糟!
Tldr:请确保您组织了代码。在太冗长的名称和太简单的名称之间取得平衡。
除此之外,写Color
,将光标放在其上,然后按 ctrl + 。,然后按 enter 。如果名称不明确,您会注意到Visual Studio will automaticaly imports for you the namespace, 或提供一个列表。 我们还有Resharper之类的工具,它们在使用intellisense时导入名称空间;)