Richtlinien für Konvertierungstypen

Die folgenden Regeln dienen als Richtlinie für die Verwendung von Konvertierungen:

  • Lassen Sie keine impliziten Konvertierungen zu, die zu einem Verlust an Genauigkeit führen. Vermeiden Sie z. B. eine implizite Konvertierung von Double zu Int32. Eine implizite Konvertierung von Int32 zu Int64 ist jedoch geeignet.
  • Lösen Sie keine Ausnahmen über implizite Konvertierungen aus, da für den Entwickler sehr schwer zu verstehen ist, was geschieht.
  • Stellen Sie Konvertierungen bereit, die für ein vollständiges Objekt gelten. Der zu konvertierende Wert sollte das gesamte Objekt darstellen und nicht einen Member des Objekts. Beispielsweise ist es nicht sinnvoll, ein Button-Element durch Rückgabe seiner Beschriftung in eine Zeichenfolge zu konvertieren.
  • Generieren Sie keinen semantisch abweichenden Wert. So ist es z. B. angemessen, einen DateTime- oder TimeSpan-Wert in einen Int32-Wert zu konvertieren. Der Int32-Wert gibt nach wie vor die Zeit oder Dauer wieder. Hingegen macht es keinen Sinn, eine Dateinamenzeichenfolge, etwa C:\mybitmap.gif, in ein Bitmap-Objekt zu konvertieren.
  • Konvertieren Sie keine Werte aus unterschiedlichen Domänen. Konvertierungen gelten für eine bestimmte Wertdomäne. So stellen beispielsweise Zahlen und Zeichenfolgen unterschiedliche Domänen dar. Folglich ist es sinnvoll, einen Int32- in einen Double-Wert zu konvertieren. Dagegen macht es keinen Sinn, einen Int32- in einen String-Wert zu konvertieren, da sich beide in unterschiedlichen Domänen befinden.

Siehe auch

Entwurfsrichtlinien für die Entwicklung von Klassenbibliotheken