用于引用泛型类中的枚举成员的语法

时间:2012-10-09 05:18:47

标签: c# java

对于以下通用类。

class Message<T>
{
    public enum TYPE { Heart, Spade };
}

在Java中,要引用枚举,我可以简单地

// Works in Java
Message.TYPE type = Message.TYPE.Heart;

但在C#中怎么样?在C#中,我需要提供虚拟类型

Message<double>.TYPE type = Message<double>.TYPE.Heart;

有什么方法可以避免dummy类型吗?

2 个答案:

答案 0 :(得分:4)

单独定义枚举,而不是在类中定义。

修改

class Message
{
    public enum TYPE { Heart, Spade };
}

class Message<T>: Message
{
}

现在你可以用它们的方式,用法:

Message.TYPE type1 = Message.TYPE.Heart;
Message<double>.TYPE type2 = Message.TYPE.Heart;

希望这会有所帮助。

答案 1 :(得分:3)

您可以使用以下代码。

abstract class Message
{
   public enum TYPE { Heart, Spade };
}

class Message<T> : Message
{

}

然后您可以像TYPE

那样访问Message.TYPE type = Message.TYPE.Heart;