我正在建模一个强类型数据库键列表。一些将是整数,一些字符串,一些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;
}
}
答案 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.