680 Stimmen

C# erhält seinen eigenen Klassennamen

Wenn ich eine Klasse namens MyProgram gibt es eine Möglichkeit, die " MeinProgramm " als Zeichenkette?

17voto

mikeschuld Punkte 925

Wenn Sie einen Typ haben, der von einem anderen erbt, können Sie als Referenz auch

this.GetType().BaseType.Name

10voto

Harshal Doshi Jain Punkte 2487

Verwenden Sie diese

Angenommen, die Anwendung Test.exe läuft und die Funktion ist foo() en Formular1 [im Grunde ist es Klasse form1 ], dann wird der obige Code die folgende Antwort erzeugen.

string s1 = System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name;

Dies wird zurückgegeben.

s1 = "TEST.form1"

für den Funktionsnamen:

string s1 = System.Reflection.MethodBase.GetCurrentMethod().Name;

wird zurückgegeben

s1 = foo 

Hinweis: Wenn Sie dies in einer Ausnahme verwenden möchten, verwenden Sie :

catch (Exception ex)
{

    MessageBox.Show(ex.StackTrace );

}

0 Stimmen

DeclaringType wird deklariert [Nullable(2)] damit Sie eine Warnung erhalten, wenn die Nullprüfung aktiv ist.

0 Stimmen

@Martin, bitte erläutern Sie Ihren Kommentar. Ich verstehe es nicht?

10voto

Mikael Engver Punkte 4348

this kann weggelassen werden. Alles, was Sie brauchen, um den aktuellen Klassennamen zu erhalten, ist:

GetType().Name

4voto

Gade Ifeoluwa Punkte 81

Dies kann für eine generische Klasse verwendet werden

typeof(T).Name

3voto

Abbas ali Punkte 31

Aktuellen Klassennamen von Asp.net abrufen

string CurrentClass = System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name.ToString();

1 Stimmen

DeclaringType wird deklariert [Nullable(2)] damit Sie eine Warnung erhalten, wenn die Nullprüfung aktiv ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X