gpt4 book ai didi

c# - 在 C# 中,有没有办法同时定义枚举和该枚举的实例?

转载 作者:太空狗 更新时间:2023-10-29 19:58:51 25 4
gpt4 key购买 nike

在 C# 中寻找代码优化,允许我同时定义枚举和创建该枚举类型的变量:

之前:

    enum State {State1, State2, State3};
State state = State.State1;

之后(不起作用):

    enum State {State1, State2, State3} state;
state = State.State1;

有这样的东西吗?

最佳答案

在 C# 中不支持它,但也许你可以解决这个问题,如果你只需要切换一些状态而不需要做任何特殊的事情,那么你可以使用元组或匿名类型做一些“接近”枚举的事情用它来操作。

例如,使用元组,你可以这样做:

var someFakeEnum = Tuple.Create(0, 1);

更新:

C# 7 引入了句法元组:

var someFakeEnum = (State1: 0, State2: 1);

或者匿名类型:

var someFakeEnum = new { State1 = 0, State2 = 1 };

然后,您可以执行以下操作:

int state = 0;

// If you're using tuples...
if(some condition)
{
state = someFakeEnum.Item2;
}

// ...or if you're using anonymous types or C# >= 7 tuples...
if(some condition)
{
state = someFakeEnum.State2;
}

显然这不是一个实际的枚举,您没有 Enum 类型为您提供的糖分,但您仍然可以像任何其他实际枚举一样使用二元运算符,如 OR、AND 或条件。

关于c# - 在 C# 中,有没有办法同时定义枚举和该枚举的实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6177820/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com