Entwickler-Ecke
C# - Die Sprache - Property-Namen bei generischen Klassen
Ares - Mo 18.10.10 09:14
Titel: Property-Namen bei generischen Klassen
Hallo!
Bei einem aktuellen Projekt benötige ich an verschiedenen Stellen eine unterschiedliche Klassen, die jeweils unterschiedliche ein Objektpaare speichern. Die Objektpaar können z.B. ein Schlüssel und ein Wert, zwei Koordinaten, ein Datum und ein Ort, ein Benutzer und ein Passwort, etc. sein. Es geht also um ganz unterschiedliche Typen:
Nun kann man natürlich für jedes mögliche Objektpaar eine eigene Klasse schreiben die diese aufnimmt. Da sich nur die verwendeten Typen unterschieden wäre aber aber eine generische Klasse wesentlich sinnvoller. KeyValuePair<> wäre z.B. solche eine fertige Klasse die verwendet werden könnte.
Das Problem hierbei ist aber, dass KeyValuePair den Zugriff über die Eigenschaften "Key" und "Value" ermöglicht. Soll nun aber kein Key-Value Paar gespeichert werden ein Benutzer und ein Passwort, wäre der Zugriff auf diese über "Key" und "Value" nicht gerade intuitiv. Der Benutzer ist kein Key, und das Passwort ist kein Value... Entsprechender Code wäre wohl recht unleserlich...
Natürlich kann ich eine eigene generische Klasse schreiben, bei der die Eigenschaften "Value1" und "Value2" heißen. Das wäre aber nur wenig besser.
Gibt es stattdessen nicht die Möglichkeit auch die Namen von Eigenschaften bei einer Generischen Klassen anzugeben? Also nicht nur "KeyValuePair<string, string>" sondern etwas wie "KeyValuePair<string [Username], string [Password]>"...?
Besten Dank
Ares
danielf - Mo 18.10.10 11:04
Hallo,
nicht das ich wüsste, aber Key und Value ist durchaus "intuitiv" da es seit Jahren die Standardformulierung ist. Es ist halt abhängig wie du den "Speicher" nennst. Sagst du einfach KeyValueCollection hat man natürlich Schwierigkeiten die Zuordnung zu verstehen. Nennst du es UserPasswordDictionary versteht man es wohl eher. Darüber hinaus denke ich, dass Objekte mehr Sinn als Strings machen, z.B. Dictionary<User, Password> bzw. Dictionary<User, string>. Dann ist der Schlüssel klar.
Gruß
Kha - Mo 18.10.10 21:16
Ares hat folgendes geschrieben : |
Gibt es stattdessen nicht die Möglichkeit auch die Namen von Eigenschaften bei einer Generischen Klassen anzugeben? |
Das wären dann wohl eher Templates von C++. Aber da du bei einer eigenen Klasse in fünf läppischen Zeilen beschreibende Property-Namen
und Klassen-Name bekommst, sehe ich da wirklich wenig Verlust ;) .
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!