使用Enum类型作为抽象字典中的键

本文关键字:字典 抽象 Enum 类型 使用 | 更新日期: 2023-09-27 17:52:43

首先我想说我是c# sharp的新手。有没有办法实现像下面这样的构造?或者有其他的方法来存档吗?

public interface IClass 
{ 
    Dictionary<Enum, ISecondClass> { get; } 
}
public abstract class ClassBase : IClass
{
    public abstract Dictionary<Enum, ISecondClass> { get; protected set;}
}
public class ConcreteClass : ClassBase
{
    public override Dictionary<ConreteEnum, ISecondClass> { get; protected set;}
}

编辑:我忘了说Dictionary的具体实例需要实现一个自定义的enum比较器,它需要一个具体的enum来初始化

对于所有对本例中需要的自定义枚举比较器感兴趣的人,请查看此链接:custom - enum-comparer

使用Enum类型作为抽象字典中的键

可以将泛型类型参数添加到类/接口级别

public interface IClass<TEnum>
{ 
    Dictionary<TEnum, ISecondClass> { get; } 
}
public abstract class ClassBase<TEnum> : IClass<TEnum>
{
    public abstract Dictionary<TEnum, ISecondClass> { get; protected set;}
}
public class ConcreteClass : ClassBase<ConcreteEnum>
{
    public override Dictionary<ConcreteEnum, ISecondClass> { get; protected set;}
}