Günsige Namensgebung für Namespaces und Klassen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Günsige Namensgebung für Namespaces und Klassen

    Ich muss sagen, ich bin einigermaßen neu in C# und bin von Java umgestiegen. Daher werde ich gerade mit einigen wohl C# spezifischen Fehlern bei der Benennung meiner Klassen und Namespaces konfrontiert, vielleicht weißt ja jemand wie ich das Problem elegant lösen kann.

    Also in C# kann man folgendes ja nicht machen, wie ich bemerkt habe:
    - Projekt
    --> Interface: Node
    --> Namespace/Ordner: Node
    -----> Klasse: SomethingNode : Node
    -----> ...
    Fehler: Der Typ "Projekt.Node" in [...] verursacht einen Konflikt mit dem Namespace "Projekt.Node" in [...].

    Ich erkläre aber mal wieso ich gerne diese Benennung hätte: Es soll viele Klassen geben (wie SomethingNode), die das Node-Interface implementieren, und da wäre ja ein Namespace mit Namen "Node" eigentlich das richtige wie ich mir dachte. Ich könnte jetzt natürlich hergehen und das Node-Interface in den Node Namespace ziehen, aber das macht auf den ersten Blick für mich wenig Sinn, da ich Node eher als elementaren Bestandteil des Projekts sehe und auch im Projekt und deren Unterordnern Membervariablen des Typs "Node" vorkommen. Daher müsste ich ja in dem Fall immer wieder "Projekt.Node" importieren, obwohl ich nur das Interface bräuchte... hört sich nicht sehr praktisch für mich an.

    Kennt vielleicht jemand eine elegante Lösung für das Problem? Vielleicht eine sinnvolle Umbenennung oder etwas in der Art, oder wie löst ihr solche Konflikte?
  • Moin!

    Du kannst in C# nicht eine Klasse genauso nennen wie ein Namespace, da bekommst du (wie du schon festgestellt hast) Konflikte. Jedes Objekt, das du definierst, egal ob Namespace, Interface, Klasse oder sonstwas muss einen Projektweiten eindeutigen Namen haben.

    Wahrscheinlich würde es sich in deinem Fall anbieten, das Interface iNode zu nennen und in den Namepsace Node zu verschieben.

    Liebe Grüße
    Bodo06