繁体   English   中英

我应该使用值还是键?

[英]Should I use values or keys?

我正在使用 class 扭曲 ArcGIS IFeature object,它具有我需要的属性,可以轻松获取和设置它们。 基本上,get 和 set 操作只使用feature.get_value(index)feature.set_value(indes, value) ,并公开强类型值。
我有几个字段使用域(基本上是IDictionary<string, object> )来表示应用程序中的公共属性。
起初我想我只会在我的包装 class 中使用域的键(它们是普通的 int 值),并在我的ToString()方法中使用域来转换为 UI 的字符串。
后来我发现我可以在我的应用程序中使用字符串(这使得传递空值变得更容易,因为实际域字段大部分时间都可以为空),并且只更改这些字段的 getter 和 setter 以使用GetDomainValue(index)SetDomainValue(index, value)方法,该方法将在键和值之间转换为底层功能 object。

您认为哪种方法更好? 我认为字符串方法有点“持久无知”,因为我的 class 不关心如何保存值,只关心它们的字符串表示形式。 另一方面,它使代码在循环中跳转了一点——而不是返回功能中的内容,每个 getter 都需要迭代域。

您可能想考虑使用Nullable< Int32>来表示您的域字段。 这将为您提供一种表示具有指定域值的要素的方法,但它还允许您在适当的地方直接指定null

我最终坚持使用域值,这样我也可以验证调用代码是否传递了有效值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM