Jeśli mam klasę o nazwie MyProgram
, czy istnieje sposób na pobranie „ MyProgram ” jako ciągu?
c#
reflection
deltanovember
źródło
źródło
nameof
operatora.Chciałem rzucić to na dobrą miarę. Myślę, że preferowany jest sposób wysłania @micahtan .
źródło
nameof(MyProgram)
.W wersji C # 6.0 możesz użyć
nameof
operatora:źródło
Chociaż odpowiedź micahtana jest dobra, nie zadziała w metodzie statycznej. Jeśli chcesz pobrać nazwę bieżącego typu, ten powinien działać wszędzie:
źródło
Dla odniesienia, jeśli masz typ, który dziedziczy po innym, możesz również użyć
źródło
Jeśli potrzebujesz tego w klasach pochodnych, możesz umieścić ten kod w klasie podstawowej:
Następnie możesz dotrzeć do nazwy w klasie pochodnej. Zwraca pochodną nazwę klasy. Oczywiście przy użyciu nowego słowa kluczowego „nameof” nie będzie takiej potrzeby, jak ta odmiana działa.
Poza tym możesz to zdefiniować:
A następnie użyj takiego:
źródło
Użyj tego
Powiedzmy, że Application Test.exe jest uruchomiony, a funkcja to foo () w formularzu 1 [w zasadzie jest to klasa form1 ], wówczas powyższy kod wygeneruje poniżej odpowiedzi.
To wróci.
dla nazwy funkcji:
wróci
Uwaga: jeśli chcesz użyć tego wyjątku, użyj:
źródło
[Nullable(2)]
więc pojawia się ostrzeżenie, gdy aktywne jest sprawdzenie zerowe.this
można pominąć. Aby uzyskać aktualną nazwę klasy, wystarczy:źródło
Uzyskaj bieżącą nazwę klasy Asp.net
źródło
[Nullable(2)]
więc pojawia się ostrzeżenie, gdy aktywne jest sprawdzenie zerowe.