Seltsame Lösung
Autor: sevenacids 18.09.20 - 16:07
Vornweg: Ich habe in Java keinerlei Erfahrung. Aus Sicht eines C#-Entwicklers (und wir alle sind uns sicher einig, dass sich beide Sprachen sehr ähnlich sind) ist es eine seltsame Lösung, was vermutlich daran liegt, dass man sowas in C# auch ohne explizites Feature bewerkstelligen kann.
Möchte ich in C# einen endlichen Satz von abgeleiteten Klassen haben, erstelle ich hier einfach eine (abstrakte) Basisklasse mit einem internal- statt public bzw. protected-Konstruktor. Dadurch bin ich der Einzige, der den Typ instanziieren und damit ableiten kann, mit einem "InternalsVisibleTo"-Attribut sogar über Modulgrenzen hinweg. Dazu braucht es dann keine Liste an Typeinschränkungen, die man bei Bedarf dann auch noch erweitern muss. Für Konsumenten stellt man dann eine öffentliche Factory-Methode bereit.
Inwiefern das beim Pattern Matching über Typen sinnvoll sein soll, erschließt sich mir auch nicht. Wenn ich in C# ein "if (x is Dog dog) { dog.Bark(); }" schreibe, dann funktioniert das mit allen Typen, die ein "Dog" oder davon abgeleitet sind. Das macht doch gar keinen Unterschied, ob die abgeleiteten Typen beschränkt oder unbeschränkt sind, oder täusche ich mich da?
1 mal bearbeitet, zuletzt am 18.09.20 16:09 durch sevenacids.
Thema | ![]() |
![]() Seltsame Lösung |
sevenacids | 18.09.20 - 16:07 |
![]() ![]() Re: Seltsame Lösung |
Jonny Dee | 18.09.20 - 17:47 |
![]() ![]() ![]() Re: Seltsame Lösung |
Trockenobst | 19.09.20 - 04:48 |
![]() ![]() ![]() ![]() Re: Seltsame Lösung |
supersux | 19.09.20 - 08:01 |
![]() ![]() ![]() ![]() ![]() Re: Seltsame Lösung |
Lord Gamma | 19.09.20 - 13:12 |
![]() ![]() ![]() ![]() ![]() ![]() Re: Seltsame Lösung |
supersux | 19.09.20 - 15:09 |
![]() ![]() ![]() ![]() Re: Seltsame Lösung |
Das... | 19.09.20 - 20:32 |
![]() ![]() Re: Seltsame Lösung |
BLi8819 | 19.09.20 - 09:57 |
![]() ![]() ![]() Re: Seltsame Lösung |
Lord Gamma | 19.09.20 - 13:17 |
![]() ![]() ![]() ![]() Re: Seltsame Lösung |
BLi8819 | 19.09.20 - 18:37 |
![]() ![]() ![]() ![]() ![]() Re: Seltsame Lösung |
Lord Gamma | 19.09.20 - 19:45 |