在C#中寻找强类型列表的设计模式

时间:2010-08-15 20:06:36

标签: c# design-patterns

我正在建模一个强类型数据库键列表。一些将是整数,一些字符串,一些guids等。

编辑它们是强类型的,因为某些键将包含整数值,一些字符串,一些uid等。

因此,如果我的Key类是“Key”而我的列表是List<Key>我正在寻找如何实现强类型方面。我不想使用泛型,因为我认为这不合适(虽然证明我错了)。

我正在考虑制作“Key”和抽象类,并使每个子类实现强类型方面。但这也会很混乱。 (见下文)

有没有人有更好的想法?

public abstract class RowKey
{
    public string DbName { get; set; }

    public abstract object GetTypedValue();
}

public class IntegerRowKey: RowKey
{
    public override object GetTypedValue()
    {
        return 1;
    }
}

1 个答案:

答案 0 :(得分:2)

为什么你认为仿制药在这里不合适?对于这种情况,它们几乎是发明的

public class RowKey<T>
{
    public string DbName { get; set; }
    public T GetValue():
}
// Now use RowKey<int>, RowKey<string>, RowKey<Guid>, etc.

有一个返回object的抽象基类破坏了强类型的整个想法,不是吗?

编辑:啊,我知道你得到了什么。看看this question.