用于保存不同类型列表的泛型设计模式

Ger*_*ton 3 c# generics

我有一个Column类:

class Column<T> where T : IComparable, IConvertible
{
    private List<T> _records;
    ...
}
Run Code Online (Sandbox Code Playgroud)

和一个应该包含许多不同数据类型列的表类.

class Table
{
    private List<Column> columns;
    ...
}
Run Code Online (Sandbox Code Playgroud)

显然这不会编译,但我遵循处理这个想法的标准设计模式.

有任何想法吗?

Luk*_*keH 6

您可以使用通用的非泛型基类或接口:

// or maybe interface IColumn instead, depending on your needs
class Column
{
    // any non-generic stuff common to all columns
}

class Column<T> : Column where T : IComparable, IConvertible
{
    // any generic stuff specific to Column<T>
}

class Table
{
    private List<Column> _columns;
}
Run Code Online (Sandbox Code Playgroud)