Feedback

C# - Überprüfen ob Objekt ein Interface implementiert

Veröffentlicht von am 04.04.2011
(1 Bewertungen)
Die folgende statische Methode überprüft, ob das übergebene Objekt das übergebene Interface implementiert.
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# Komplett

Sie kennen sich in objektorientierter Programmierung aus. Sie schreiben C++ oder Java? Und nun stehen Sie vor der Aufgabe, in C# Anwendungen zu erstellen. Das C# Komplett-Seminar verschafft Ihnen umfassende Programmierkenntnisse in dieser Sprache. Nach der Schulung entwickeln Sie selbständig Anwendungen mit C#. Sie kennen die Datentypen und Klassenbibliotheken der objektorientierten Programmiersprache C#. Der Komplettkurs setzt bei den Grundlagen von C# ein. Sie arbeiten mit Variablen und konvertieren Typen. Multithreading, Delegates, Generics sind nach dem Seminar für Sie kein Geheimnis mehr.

/// <summary>
/// Überprüft, ob ein Objekt ein bestimmtes Interface implementiert.
/// </summary>
public static bool IsInterfaceImplemented(object obj, Type interfaceType)
{
    if (obj != null)
    {
        return obj.GetType().FindInterfaces(new TypeFilter(
            delegate(Type type, object filter) { return (type.Name == ((Type)filter).Name)
                && (type.Namespace == ((Type)filter).Namespace); }), interfaceType).Length == 1;
    }

    return false;
}
Abgelegt unter interface, implementiert, implement.

2 Kommentare zum Snippet

Peter42 schrieb am 04.04.2011:
Also ich würde es so implementieren:
static bool IsInterfaceImplemented<I>(object obj) where I : class
{
return obj as I != null;
}
hackman schrieb am 04.04.2011:
ok die funktion von Peter42 wäre eine möglichkeit, allerdings ist in der ursprungsfunktion ja ein Type argument übergeben. aber hierzu, rate mal für was es die Type.IsInstanceOfType Type.IsAssignableFrom gibt?
 

Logge dich ein, um hier zu kommentieren!