C# Refleksja a dziedziczenie sealed

0

Jako, że ostatnio bywałem na kilku rozmowach o pracę, w kilku różnych miejscach kilka razy padło pytanie o to czy rozumiem refleksję i jakie są jej niebezpieczeństwa.
na pierwszej rozmowie niewiele widziałem, to postanowiłem się dokształcić, ale jednak powstała inna zagwozdka.
W innej firmie zapytano mnie, czy znam jakiś sposób, żeby dziedziczyć po klasie, która jest sealed.
no i żadem nie przyszedł mi do głowy. :(
ale teraz tak zastanawiam się, czy właśnie nie pomoże w tym refleksja?
Jest taka opcja? Jakie znacie inne pomysły na dziedzicznie sealed?
( żeby nie robić miny debila na rozmowie)

0

Można refleksją zbudować klasę w locie (przydają się do tego klasy AssemblyBuilder, ModuleBuilder i TypeBuilder) i klasa taka może dziedziczyć z innej, ale jeśli jako bazową podamy klasę sealed, to dostaniemy wyjątek.

Byłoby strasznie mylące, gdyby coś takiego było w ogóle możliwe. Skoro dana klasa jest oznaczona jako sealed, to znaczy, że metody przyjmujące argumenty jej typu nie są tworzone z myślą o radzeniu sobie z jej potomkami. Jeśli dałoby się to obejść refleksją, to ktoś zapewne by tak zrobił i kod mógłby zacząć zachowywać się niestabilnie.

Następnym razem powiedz, że jeśli potrzebują czegoś takiego, to chyba mają jakieś duże problemy z designem.

3

Przy takich pytaniach warto dociekać po co i dlaczego chcą to zrobić. Niektórzy oczekują że będziesz kombinował, ale fakt faktem jest to pytanie w stylu idiotycznych i powinna zapalić Ci się czerwona lampka, że w tej firmie może być jakaś jazda w projekcie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1