Feedback

C# - Prüfen ob Klasse static ist

Veröffentlicht von am 28.03.2013
(1 Bewertungen)
Es scheint, soweit ich heraus gefunden habe, das man über die Standartmethoden/Eigenschaften von .NET nicht heraus finden kann ob eine Klasse, welche mit reflection ausgelsen wurde, static ist oder nicht. Sie ist es jedoch wenn Sie nicht weiter vererbbar und auch nicht instanzierbar ist:
Snippet in VB übersetzen
        public bool IsStatic(this Type type)
        {
            return type.IsAbstract && type.IsSealed;
        }
Abgelegt unter Reflection, Class, IsStatic.

2 Kommentare zum Snippet

IlkerS schrieb am 04.04.2013:
Wenn die Klasse abstrakt ist dann ist sie sicherlich nicht instanziierbar. Ist es wirklich so, dass type.IsAbstract true zurückgibt, wenn die Klasse statisch ist? abstrakt ist schließlich nicht das selbe wie statisch.
Koopakiller schrieb am 04.04.2013:
Ich habe es mehrfach durchgeprüft. IsAbstract heißt das Sie nicht instanzzierbar ist. Wenn du eine Klasse als abstract deklarierst, dann kannst du aber noch von ihr erbenen, was bei statischen Klassen nicht geht. Darum prüfe ich noch ob Sie auch noch sealed, also nicht versigelt ist. Wenn die Klasse also nicht instanzierbar und nicht vererbbar ist, dann muss sie static sein.
Ich schreibe gerade an einem Programm wo ich das brauche und ja, beide Eigenschaften sind True bei statischen Klassen.
 

Logge dich ein, um hier zu kommentieren!