Wszystko o Type
ma charakter refleksyjny. Czy to dlatego, że Type
jest używany częściej niż reszta klas w System.Reflection
? A może dlatego, że działa bardziej jak klasa systemowa niż klasa odbicia?
Krótko mówiąc, zawsze zastanawiałem się, jaka jest motywacja lokalizacji System.Type
było.
Odpowiedzi:
1 dla odpowiedzi № 1Klasa Type jest używana w znacznie większej liczbie miejsc, a nietylko System.Reflection. Szybkie wyszukiwanie za pomocą Odbłyśnika ujawnia ich setki. Ma to kluczowe znaczenie w System.Configuration, System.Data, System.Drawing, System.Linq, System.Windows.Forms itp. Sposób, w jaki instancja Type jest faktycznie używana w tych klasach, nie jest widoczny. Prawdopodobnie system. Używane jest odbicie, ale jest to szczegół implementacji, który w żaden sposób nie wpływa na program.
Biorąc pod uwagę, że tworzenie instancji Type, że oneklasy potrzeba jest trywialna w przypadku operatora typeof i obiektu.GetType i że nigdy nie musisz używać System.Reflection, dopóki nie napiszesz kodu odbicia, Type z pewnością zasługuje na łatwo dostępną lokalizację w przestrzeni nazw System.
1 dla odpowiedzi nr 2
Zespół ma typy i Assembly
leży na System.Reflection
co jest ciekawe.
Domyślam się, że ma to coś wspólnego Object
wdrożenie metody GetType
która zwraca a Type
.
0 dla odpowiedzi № 3
Chyba dlatego, że Object jako metoda GetType.
Ćwiczenie kodowania MS mówi, że klasa nie powinna odwoływać się do typu w przestrzeni nazw. W praktyce BCL dość często narusza tę zasadę; o)