我正在寻找一个 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上调用相应的实现,而不需要在内部手动执行类型检查。
我尝试了各种接口和类组合,但无法获得工作结果。
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");
}
}
你有想过这样的事情吗?