我正在使用具有我所需属性的类来转换ArcGIS IFeature对象,以便轻松获取和设置它们。
基本上,get和set操作只使用feature.get_value(index)
和feature.set_value(indes, value)
,并显示强类型值。
我有几个字段使用域(基本上是IDictionary<string, object>
)来表示应用程序中的公共属性
起初我想我只会在我的包装类中使用域的键(这是普通的int值),并在我的ToString()
方法中使用域来转换为UI的字符串。
后来我发现我可以在我的应用程序中使用字符串(这使得更容易传递空值,因为实际的域字段在大多数情况下都可以为空),并且只更改这些字段的getter和setter以使用GetDomainValue(index)
和SetDomainValue(index, value)
方法,它将在键和值之间转换为基础要素对象。
您认为哪种方法更好?我认为字符串方法更加“持久无知”,因为我的课程并不关心如何保存值,只是它们的字符串表示。 另一方面,它使代码跳过循环 - 而不是返回功能中的内容,每个getter都需要迭代域。
答案 0 :(得分:0)
您可能需要考虑使用Nullable< Int32>
来表示域名字段。这将为您提供一种表示具有指定域值的功能的方法,但它也允许您在适当的位置直接指定null
。
答案 1 :(得分:0)
我最终坚持使用域值,这样我也可以验证调用代码是否传递了有效值。