如何使用枚举而不一次又一次重复枚举名称?

Rom*_*'ai 1 c# asp.net

我有这样的代码:

PokerHand hand = new(PokerCard.HeartAce, PokerCard.HeartKing, PokerCard.HeartQueen,
                     PokerCard.HeartJack, PokerCard.HeartTen);
Run Code Online (Sandbox Code Playgroud)

其中PokerCard定义为:

public enum PokerCard : int
{
    SpadeAce = 1, SpadeTwo = 2, SpadeThree = 3, SpadeFour = 4, SpadeFive = 5,...
}
Run Code Online (Sandbox Code Playgroud)

我可以做类似的事情吗:

with (PokerCard) {
  PokerHand hand = new(HeartAce, HeartKing, HeartQueen, HeartJack, HeartTen);
}
Run Code Online (Sandbox Code Playgroud)

在 C#/ASP.NET 中?

Evk*_*Evk 8

不会说这是一个好主意,但您可以使用 static 指令来做到这一点(我认为是 C# 6.0+):

using static ConsoleApp4.PokerCard;

namespace ConsoleApp4
{
    class Program
    {
        static void Main(string[] args) {
            PokerHand hand = new(HeartAce, HeartKing);
        }
    }

    public enum PokerCard {
        HeartAce,
        HeartKing
    }

    public class PokerHand {
        public PokerHand(PokerCard a, PokerCard b) {

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

using static <enum>允许在不指定枚举类型的情况下引用枚举成员。

  • 很好的答案,尤其是“不会说这是一个好主意”:) (2认同)