Я деформирую объект ArcGIS IFeature с классом, который имеет мои требуемые свойства, чтобы получить и установить их легко. В принципе, операции get и set просто используют feature.get_value(index)
и feature.set_value(indes, value)
и выставляют строго типизированное значение.
У меня есть несколько полей, которые используют домен (в основном, IDictionary<string, object>
) для представления общих свойств в приложении.
Сначала я понял, что буду использовать только ключи домена (которые являются нормальными значениями int) в моем классе упаковки и использовать домен в моем методе ToString()
для перевода на строки для пользовательского интерфейса.
Позже я понял, что могу использовать строки в своем приложении (что упрощает передачу нулей, так как фактические поля домена имеют значение NULL большую часть времени), и только изменяют те получатели и сеттеры полей, которые используют GetDomainValue(index)
и SetDomainValue(index, value)
метод, который будет переводить между ключом и значением в/из основного объекта объекта.Должен ли я использовать значения или ключи?
Какой подход, на ваш взгляд, лучше? Я понял, что строковый подход является немного более «постоянным неосведомленным», так как моему классу все равно, как сохраняются значения, просто их строковое представление. С другой стороны, он заставляет код прыгать через циклы немного - вместо того, чтобы возвращать то, что находится в этой функции, каждый геттер должен итерировать домен.
Да, сначала я использовал int? подход, но в итоге я работал с значениями домена - таким образом, я также могу убедиться, что вызывающий код не пытается помещать недопустимые значения в поле. –