Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将枚举分配给变量?_C#_Enums_Variable Assignment - Fatal编程技术网

C# 如何将枚举分配给变量?

C# 如何将枚举分配给变量?,c#,enums,variable-assignment,C#,Enums,Variable Assignment,我想简化对枚举的引用: class Order { enum OrderStatus{open,cancelled, onHold} } 与之相当的是: class SomeOtherClass { // assign enum to a simpler name enum Status = Order.OrderStatus public void foo(){ // so the reference is simpler, rather t

我想简化对枚举的引用:

class Order
{
    enum OrderStatus{open,cancelled, onHold}
}
与之相当的是:

class SomeOtherClass
{
    // assign enum to a simpler name
    enum Status = Order.OrderStatus

    public void foo(){
        // so the reference is simpler, rather than Order.OrderStatus.open
        Console.Write(Status.open);
    }
}

有什么想法吗?

您可以将此语句放在源代码文件的顶部

using Status = Order.OrderStatus;
当心如果您已在名为instance
ConsoleApplication
的命名空间中声明了您的
Order
类,则必须在下单前准备结束该类

using Status = ConsoleApplication.Order.OrderStatus;

您可以使用alias指令将其缩短一点。这需要在与SomeOther类相同的命名空间中编写

using OrderStatus = Order.OrderStatus;

首先,必须将枚举公开,以便它在类外可见:

class Order
{
    public enum OrderStatus { open, cancelled, onHold }
}
然后,您可以为其分配一个别名,以简化访问

// give an alias
using Status = Order.OrderStatus;

class SomeOtherClass
{
    public void foo(){
        // reference is now simpler, rather than Order.OrderStatus.open
        Console.Write(Status.open);
    }
}

我建议使用Enum作为额外的,并在您需要的任何地方使用/重用它,如下所示:

public enum OrderStatus 
{ 
   open, 
   cancelled, 
   onHold 
}

class SomeOtherClass
{
    private OrderStatus Status;

    public void foo(){
        // so the reference is simpler, rather than Order.OrderStatus.open
        Console.Write(Status.open);
    }
}

如果顺序是“SomeOtherClass”的一部分,并且与此处相关,请将其转发到构造函数中,并使其在foo()方法中对工作流有效。

枚举
移出
类顺序
?使用枚举的类型作为变量的类型。.可能重复的