抽象类中的泛型类型

问题描述 投票:0回答:1

我正在寻找一个 C# 解决方案,它允许我创建一个基类 (AParam),其继承类 (Param) 可以是通用的,以便实现不同的、依赖于类型的函数版本 (Serialize())。最终,我希望能够执行类似于下面代码块中的操作。我知道 C# 不支持模板专业化。有什么好的解决办法吗?

void Start()
{
       List<AParam> tList = new List<AParam>();

       tList.Add(new Param<int>());
       tList.Add(new Param<bool>());

       tList[0].Serialize();
}

根据Param的特殊性,应该直接在APram上调用相应的实现,而不需要在内部手动执行类型检查。

我尝试了各种接口和类组合,但无法获得工作结果。

c# generics abstraction
1个回答
0
投票
public class AParam
{
    public virtual void Serialize()
    {
        Console.WriteLine("Base");
    }
}

public class Param<T> : AParam
{
    public T Val { get; set; }

    public override void Serialize()
    {
        Console.WriteLine("Param");
    }
}

你有想过这样的事情吗?

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.