对于以下通用类。
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
类型吗?
答案 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;