我正在建模一个强类型数据库键列表。有些人会整型,某些字符串,一些的GUID等在C#中寻找强类型列表的设计模式
EDIT他们在这个意义上强类型,一些按键将包含整数值,一些字符串,一些的UID等
所以,如果我上课关键是“关键”,我的名单是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;
}
}
我怀疑泛型*在这里是正确的解决方案,但是你没有向列表显示你想要做什么。您是否想要拥有*相同*类型的rowkey或潜在*不同*键类型的列表? – 2010-08-15 20:13:17
这是“强类型”?你怎么使用钥匙? – SLaks 2010-08-15 20:13:37
这个想法是,他们可能是不同的关键类型,但类型相同(所以他们可以分享共同的行为,它只是不同的类型)。 我之所以回避泛型的原因是因为我读过不同类型的列表并不适合泛型 – AJM 2010-08-15 20:15:46