【问题标题】:Is it possible to reference enum from another class via a shortcut? [duplicate]是否可以通过快捷方式从另一个类引用枚举? [复制]
【发布时间】:2018-03-27 10:58:55
【问题描述】:

所以我有一个这样的枚举:

public class MyObnoxiouslyLongClassName : AbstractModel, IPerforceModule
{
    public enum Status { Fatal, Priority, Error, Warning, Info, Debug }

当我在另一个类中访问枚举时,我必须这样做:

MyObnoxiouslyLongClassName.Status state = MyObnoxiouslyLongClassName.Status.Fatal

我想要做的就是在我的其他类中链接到这个枚举,这样我就可以跳过长类名.. 像这样的伪代码:

public class MyOtherClass : AbstractModel, IFileBrowser
{
    private enum Status = MyObnoxiouslyLongClassName.Status
    Status state = Status.Fatal;
    (state == MyObnoxiouslyLongClassName.Status.Fatal) //true

这可以在 C# 中完成吗?

【问题讨论】:

  • 您可以做的最接近的事情是定义别名(但不在 MyOtherClass 内部 - 在该类所在的 .cs 文件顶部):using Status = MyNamespace.MyObnoxiouslyLongClassName.Status;
  • 是的,别名做到了,正是我需要的。你说得对,这可能是别名类名问题的重复,我只是不确定这样做被称为(别名)所以很难搜索。

标签: c# enums reference


【解决方案1】:

你已经在类的范围内创建了一个枚举。只需将枚举移出,使其在命名空间内“独立存在”:

public enum Status { Fatal, Priority, Error, Warning, Info, Debug }

public class MyObnoxiouslyLongClassName : AbstractModel, IPerforceModule
{

另一种方法是创建using

using Short = NameSpace.MyObnoxiouslyLongClassName.Status;

后者的缺点是你必须在你打算使用它的每个类中重复使用。

【讨论】:

  • 谢谢,这些成功了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-09-19
  • 2011-08-07
  • 1970-01-01
  • 2016-03-16
  • 2017-06-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多