Frage

Ich bin warpping ein ArcGIS iFeature Objekt mit einer Klasse, die meine erforderlichen Eigenschaften hat zu erhalten und sie einfach einstellen. Grundsätzlich sind die Get- und Set-Operationen verwenden nur feature.get_value(index) und feature.set_value(indes, value), und setzen die stark typisierte Wert.
Ich habe mehrere Felder, die eine Domäne verwenden (im Grunde ein IDictionary<string, object>) darstellt gemeinsame Eigenschaften für die Anwendung.
Zuerst dachte ich, ich nur die Schlüssel der Domäne verwenden würde (die normalen int-Werte) sind in meiner Verpackung Klasse, und verwenden Sie die Domäne in meiner ToString() Methode, um Strings für die Benutzeroberfläche zu übersetzen.
Später habe ich herausgefunden ich Strings in meinem applicaiton verwenden kann (was es einfacher macht, um NULL-Werte zu übergeben, da die tatsächlichen Domain-Felder auf NULL festlegbare die meiste Zeit sind), und nur die Felder Getter und Setter ändern GetDomainValue(index) und SetDomainValue(index, value) Methode zu verwenden, die zwischen dem Schlüssel und Wert zu / von dem zugrunde liegenden Merkmale Objekt übersetzen.

Welche Ansatz denken Sie, ist besser? Ich dachte, der String-Ansatz ein bisschen mehr „persistent ignorant“ ist, wie meine Klasse kümmert sich nicht darum, wie die Werte gespeichert werden, nur ihre String-Darstellung. Auf der anderen Seite, macht es den Code springt durch Schleifen ein wenig - statt der Rückkehr, was in der Funktion ist, jeder Getter, die Domain iterieren muss

.
War es hilfreich?

Lösung 2

ich am Ende mit den Domänenwerten kleben, so dass ich auch, dass der anrufende Code überprüfen kann, einen gültigen Wert übergeben.

Andere Tipps

Sie können über das Darstellen Ihrer Domain Felder denken mit Nullable< Int32> . Dies würde Ihnen eine Möglichkeit, Funktionen darzustellen, die eine Domain-Wert angegeben haben, aber es erlaubt Ihnen auch direkt null angeben, wo angemessen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top