我正在使用一个类扭曲 ArcGIS IFeature 对象,该类具有我需要的属性以轻松获取和设置它们。基本上,get 和 set 操作只使用feature.get_value(index)
and feature.set_value(indes, value)
,并暴露强类型值。
我有几个字段使用域(基本上是一个IDictionary<string, object>
)来表示整个应用程序的公共属性。
起初我想我只会在我的包装类中使用域的键(它们是普通的 int 值),并在我的ToString()
方法中使用域来转换为 UI 的字符串。
后来我发现我可以在我的应用程序中使用字符串(这使得传递空值更容易,因为实际的域字段大部分时间都可以为空),并且只更改这些字段的 getter 和 setter 以使用GetDomainValue(index)
和SetDomainValue(index, value)
将在键和值之间转换到底层特征对象的方法。
你认为哪种方法更好?我认为字符串方法有点“持久无知”,因为我的班级不关心值是如何保存的,只关心它们的字符串表示。另一方面,它使代码稍微跳过循环——而不是返回特性中的内容,每个 getter 都需要迭代域。