2011-01-23 17 views
40

Na stronie run-time, w numerze base class, jak znaleźć aktualną nazwę klasy dziecka?Jak znaleźć nazwę klasy potomnej z klasy bazowej?

+0

Co oznacza "bieżący dziecięcą nazwę klasy" oznacza? – BoltClock

+0

Tak, wiele dzieci dziedziczy "klasę podstawową" i chcę, aby obecny, który używa "klasy bazowej" – Xaqron

+0

. Jeśli chcesz poznać rzeczywistą klasę, możesz użyć operatora 'is', np. 'if (to jest BaseClass1) {jakiś kod tutaj}' –

Odpowiedz

72

Pobierz typ bieżącego obiektu, a następnie jego nazwę.

this.GetType().Name 
+5

Dla klasy bazowej można użyć: 'this.GetType(). BaseType.Name' –

7

Jeśli zadzwonisz pod numer this.GetType(), zawsze otrzymasz bieżący typ środowiska wykonawczego, niezależnie od klasy bazowej, z której dziedziczysz.

5

Spróbuj tego:

Type type = this.GetType().UnderlyingSystemType; 
String className = type.Name; 

szczegółowy przykład na ten link:

http://blogs.markglibres.com/2010/11/c-retrieve-class-name-of-child.html

+5

Witamy w Stack Overflow! Dziękujemy za przesłanie odpowiedzi! Pamiętaj, aby uważnie przeczytać [FAQ na temat autopromocji] (http://stackoverflow.com/faq#promotion). Należy również pamiętać, że * wymagane * jest to, że publikujesz zrzeczenie się za każdym razem, gdy łączysz się z własną witryną/produktem. –

+3

dziękuje Andrzejowi za poinformowanie mnie. :) Moja strona na blogu to jednak moja osobista uwaga, ponieważ często zapominam o rzeczach ... nic o promocji ani o trafieniach użytkowników. nawet nie martwił się, gdyby ktoś mógł to zobaczyć lub skomentować. będzie przestrzegać reguł. Wielkie dzięki! :) – markg

Powiązane problemy