【发布时间】:2020-03-16 20:26:00
【问题描述】:
我正在查看一个名为 2D GameKit 的 Unity 项目中的一些脚本,并且我试图从拼凑每个脚本的目的中学习。在其中一个用作持久存储的机制中,我注意到几个泛型类派生自一个空的基类。为什么?
下面是代码示例:
public class Data
{
}
public class Data<T> : Data
{
public T value;
public Data(T value)
{
this.value = value;
}
}
public class Data<T0, T1> : Data
{
public T0 value0;
public T1 value1;
public Data(T0 value0, T1 value1)
{
this.value0 = value0;
this.value1 = value1;
}
}
【问题讨论】:
-
因为代码的作者认为这是正确/好的解决方案。即使您提出特定的类,该问题也可能过于宽泛/基于意见......(“为什么 X 决定做 Y”几乎不可能以具体的方式回答,“从基础派生泛型有什么好处类”正在要求一个列表,并且太宽泛)
-
可能这样您就可以将任一类型传递给具有
where T : Data约束的泛型方法(或任何将Data类型作为参数的方法)。
标签: c# class unity3d generics inheritance