空类而不是枚举 - 可怕的想法?

pgh*_*er4 2 c# enums class

我目前正在使用枚举来描述许多可能的操作系统平台.我有东西WIN32,SOLARIS64,LINUX32,但也有更广泛的类别,如ALLWIN和ALLUNIX.我在我的代码中有一个位置,我需要决定给定的平台是否属于另一个平台.对我而言,这听起来像继承,但显然枚举不能相互继承.

然后,我想到将这些平台从1个枚举转换为彼此继承的空类.我觉得这在概念和空间上是一个可怕的想法,但不是C#的主人我以为我会在这里发帖寻找更有经验的意见.有什么想法吗?

这看起来像是这样的:

public class ALL {};

  public class ALLWIN : ALL {};

    public class WINNT : ALLWIN{};

      public class WIN32 : WINNT{};
Run Code Online (Sandbox Code Playgroud)

... 等等等等.

kem*_*002 6

枚举不能继承,但它们具有标志的概念,它完成了你想要做的同样的事情:

[FlagsAttribute]
enum OSs
{
   WinNT = 1;
   WinNXP = 2;
   AllWIN = WinNT | WinNXP;
}
Run Code Online (Sandbox Code Playgroud)

等等...

链接到枚举.