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:
GFU-Schulungen  [Anzeige]

C# Grundlagen

Die Schulung vermittelt Ihnen die Grundlagen von C# in der Arbeit mit Datentypen sowie bei Klassenbibliotheken. Sie lernen, mit Variablen umzugehen und deren verschiedene Formen zu konvertieren. 

C# 2017/2015/2013 Aufbau

In dieser Schulung lernen Sie fortgeschrittene Techniken im Bereich .Net C#. Dabei stehen neben den eigentlichen Techniken auch architektonische Aspekte im Mittelpunkt.

        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!