C# 强制使用字典键
C# Enforcing Use of Dictionary Keys
我想知道验证或强制执行用于字典的密钥的最佳做法是什么 object/parameter。
以这个方法为例:
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<enum, string>
)?
此处自定义 class 更合适,因此您可以强制所有“键”(将成为新 class 中的属性)按预期填充。
是的,你是对的。使用 Dictionary<enum, string>
可能是最好的方法。
我想知道验证或强制执行用于字典的密钥的最佳做法是什么 object/parameter。
以这个方法为例:
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<enum, string>
)?
此处自定义 class 更合适,因此您可以强制所有“键”(将成为新 class 中的属性)按预期填充。
是的,你是对的。使用 Dictionary<enum, string>
可能是最好的方法。