Typ-Vergleich trotz unterschiedlichen Namespaces

  • C#
  • .NET (FX) 1.0–2.0

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von VaporiZed.

    Typ-Vergleich trotz unterschiedlichen Namespaces

    Hallo liebe Community,

    ich möchte prüfen, von welchem Typ ein mir übergebenes Objekt ist.
    Bislang habe ich das immer in meinen Projekten wie folgt gemacht:

    C#-Quellcode

    1. if( object1 is MyObjectClass)
    2. {
    3. //Do something
    4. }

    (object1 ist die übergebene Instanz einer Klasse und MyObjectClass ist die Klasse selbst)

    Das funktioniert leider nicht, wenn die Namespaces unterschiedlich sind.
    Ich habe jetzt nämlich nicht mehr 1 Projekt, sondern 2 verschiedene.
    Was ich noch probiert habe:

    C-Quellcode

    1. if (object1.GetType() == typeof(MyObjectClass))
    2. {
    3. //Do something
    4. }


    Ich vermute, dass es an den Namespaces liegt, denn abgesehen davon, ist nix am Objekt selbst anders (Copy and Paste bis auf den Namespace).

    Gibt's dennoch solch einen Einzeiler, um trotz unterschiedlicher Namespaces zu prüfen, ob es sich um den gleichen Typ handelt?

    Danke :)
    Hallo,
    nein. Wenn die Klassen aus verschiedenen Namespaces kommen, sind diese nun mal unterschiedlich. Lösung: Die Klasse, die in beiden Projekten verwendet werden soll, in eine Klassenbibliothek auslagern und diese in beiden Projekten verwenden. Dafür ist das da. Man soll Code ja nicht unnötigerweise duplizieren ;)
    Genau.
    Meines Erachtens wird ein Typ eben auch durch den Namespace festgelegt. Wenn Du einmal den Typ Bundeswehr.Eurofighter hast und einmal Lego.Eurofighter und beide die gleichen Klasseneigenschaften zur Verfügung stellen, sollte sich trotzdem automatisch von der Logik her ergeben, dass beides nicht das gleiche sein oder darstellen kann. Daher werden die Typen auch nie als gleich angesehen.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.