【问题标题】:Why would an empty class serve as the base class for several generic classes? [closed]为什么一个空类会作为几个泛型类的基类? [关闭]
【发布时间】: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


【解决方案1】:

这样您就可以检查(知道/比较)某个对象肯定是数据。如果您没有基类,当您想在处理之前检查对象是否确实是一种数据类型时,您需要与Data&lt;T&gt; AND Data&lt;T0, T1&gt; 以及创建的任何其他数据类型进行比较未来

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-14
    • 2023-03-06
    • 1970-01-01
    • 2019-03-06
    • 1970-01-01
    • 1970-01-01
    • 2013-10-14
    • 1970-01-01
    相关资源
    最近更新 更多