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> 可能是最好的方法。