2

对于以下泛型类。

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类型?

4

2 回答 2

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;

希望这会有所帮助。

于 2012-10-09T05:33:55.840 回答
3

您可以使用以下代码。

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

class Message<T> : Message
{

}

然后你可以访问TYPE喜欢Message.TYPE type = Message.TYPE.Heart;

于 2012-10-09T05:29:29.680 回答