0

我正在使用一个类扭曲 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 都需要迭代域。

4

2 回答 2

0

您可能想考虑用Nullable< Int32>. 这将为您提供一种表示具有指定域值的特征的方法,但它也允许您null在适当的地方直接指定。

于 2009-06-22T12:02:06.053 回答
0

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

于 2009-06-29T06:23:45.110 回答