有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

对于以下泛型类

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

在Java中,参考enum,我可以简单地

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

但是在C#中呢?在C#中,我需要提供一个dummy类型

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

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


共 (2) 个答案

  1. # 1 楼答案

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

    编辑:

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

    现在,您可以通过以下两种方式完成:

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

    希望现在能有所帮助

  2. # 2 楼答案

    您可以使用以下代码

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

    然后你可以像Message.TYPE type = Message.TYPE.Heart;一样访问TYPE