Darf ich mal fragen, wozu man soetwas benötigt und warum ein
Variant hier nicht infrage kommt?
Weil mir die Datentypen die Variant unterstützt nicht ausreichen.
Das ist ein Argument. Allerdings frage ich mich, wie Du beim Konstrukt
var3.Value.Message
zur Laufzeit auf
Message
zugreifen willst, wo Du doch zur Designzeit gar nicht wissen kannst, das diese Property existiert. D.h. wie würde der konkrete Code denn aussehen?
Weil das im Vergleich zu Generics deutlich langsamer wäre und auch keinen Sinn macht, wenn man das Problem mit Generics typsicher und performant lösen kann.
Was ihr immer mit eurem 'deutlich langsamer' habt. Es ist nicht 'deutlich' langsamer, sondern höchstens ein wenig und dann auch nur bei Zugriff. Beim Transport fällt das nicht ins Gewicht. Und wenn es sich nicht um Hochgeschwindigkeitsiterationen handelt, ist es eh zweitrangig. Was hier jedoch ins Gewicht fiele, wäre die Tatsache, das alles schon vorhanden ist. 'Performance' spielt auch bei der Entwicklung eine Rolle. Aber jedem sein Bier.
Typsicherheit ist allerdings ein Argument.
Trotzdem würde mich interessieren, wozu man das benötigt, wo man die konkrete variable doch auch quasi direkt erzeugen könnte.