我想知道验证或强制用于Dictionary对象/参数的Keys的最佳实践是什么。
以以下方法为例:
public override SqlServerQueryBuilder From(Dictionary<string, string> tableReferenceDictionary)
{
this.SelectQuery += " FROM " + this.IdentifierStart + tableReferenceDictionary["Database"] + this.IdentifierEnd
+ "." + this.IdentifierStart + tableReferenceDictionary["Schema"] + this.IdentifierEnd
+ "." + this.IdentifierStart + tableReferenceDictionary["Table"] + this.IdentifierEnd;
return this;
}
该方法接受Dictionary形参,并做出假设关于使用的钥匙。如果调用者传递了一个输入错误(database"而不是"Database">),那么这段代码将抛出异常。有没有更好的方法来处理这个问题?
可能是实现相同功能的不同数据类型?
也许使用枚举并使关键类型为enum (Dictionary<enum, string>
)?
在这里使用自定义类更合适,这样您就可以强制执行所有的"键"(这将是新类中的属性)按预期填充。
你是正确的。使用Dictionary<enum, string>
可能是最好的方法。