Załóżmy mam klasę dominującą i klasę dziecka:Uzyskiwanie nazwy deklarowanej klasy?
public abstract class Parent
{
public string GetParentName()
{
return GetType().Name;
}
}
public class Child : Parent
{
public string GetChildName()
{
return GetType().Name;
}
}
Jako prądu, zarówno GetParentName() i GetChildName() powróci Dziecko.
Jednak w moim scenariuszu chciałbym uzyskać nazwę klasy, w której deklarowana jest metoda.
Zatem GetChildName() powinna powrócić dziecko ale GetParentName() powinna powrócić Parent.
Czy jest to możliwe?
. UWAGA:
Rozumiem, że mogę używać GetType() BaseType.Name ale nie będzie działać, ponieważ hierarchia może być skomplikowane.
'Chciałbym uzyskać nazwę klasy, w którym metoda jest declared' to znaczy, że są dwie różne metody,' GetChildName' * jest * zadeklarowane u dziecka – Jonesopolis
Możliwy duplikat [Jak uzyskać nazwę i typ metody wywołującej za pomocą odbicia?] (http://stackoverflow.com/questions/3095696/how-do-i-get-the-calling- nazwa-metody-i-typ-użycie-odbicie) – MethodMan
Można po prostu zwrócić "nadrzędny". Daj nam przykład, w którym nie ma sensu zwracanie trumny. – Winter