OT: Ich bin eigentlich ein Freund von Properties.
Ja ich schon auch, aber der Mehraufwand ist halt auch da.
Ist aber richtig, das macht man nur einmal und dann ist es für immer drin
Bei nicht vorhandenem Unknown wäre bei einem Getter ja nur noch eine
Exception möglich,
was ich persönlich für den einfachen Enum ( <> Integer ) etwas zu hart finde.
Deshalb bevorzuge ich TryFromXyz, da kann ich dann explizit drauf reagieren.
Ich nutze das oft um enum => Integer oder enum => String und zurück umzuwandeln, z.B. für Serialisierung oder Persistance.
Dabei sollte es meiner Meinung nach besser einen 1:1 Match geben, auch bei Unknown, und keinen Fallback, was zu Misinterpretation führen könnte.
Nur wenn es eben nicht exakt in das Enum reinpasst, dann gäbe es den Abbruch bei TryFromXyz.
Das kann z.B. durch Versionsupdates oder ähnliches leicht passieren.