【发布时间】:2010-08-16 04:22:47
【问题描述】:
我正在为强类型数据库键列表建模。有些是整数,有些是字符串,有些是 guid 等。
编辑它们是强类型的,因为一些键将包含整数值、一些字符串、一些 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;
}
}
【问题讨论】:
-
我怀疑泛型 are 在这里是正确的解决方案,但您还没有显示您想对列表做什么。您是否尝试列出相同类型的行键或可能不同键类型的列表?
-
这个“强类型”如何?你是怎么用钥匙的?
-
他们的想法是它们可能是不同的键类型但属于同一类型(因此它们可以共享共同的行为,只是类型不同)。我回避泛型的原因是我读到不同类型的列表不适合泛型
-
我觉得我的问题有点含糊。我正在回答这个问题stackoverflow.com/questions/353126/…
标签: c# design-patterns