我应该使用值还是键?

时间:2009-06-17 08:26:37

标签: c# architecture arcgis

我正在使用具有我所需属性的类来转换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都需要迭代域。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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