Announcement

Collapse
No announcement yet.

Namespace erstellen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Namespace erstellen

    Hallo,

    dies ist glaube ich eine wirklich banale Frage, aber ich versuche grad sowas wie Packages in Visual C# zu erstellen.
    So wie ich gelesen habe, nennt man in .NET die Aufteilung nicht Packages sondern Namespaces.
    Im Projektmappen-Explorer von Visual C# kann ich aber leider nur Ordner erstellen und unter den restlichen Elementen finde ich sowas nicht wie ein Namespace. Geht die Aufteilung überhaupt mit dem Projektmappen-Explorer?

    Nun habe ich im Quelltext einfach die Klasse einem beliebigen Namespace zuegordnet:
    Code:
    namespace registryAccess
    {
    ..
    }
    Im Projektmappen-Explorer steht als "Ordner" für diese Klasse aber "Solution Items", warum steht da nicht registryAccess?

    Vielen Dank schonmal!
    Gruß, Andy

  • #2
    Packages sind am ehesten mit Assemblies zu vergleichen. Der namespace beschreibt einen Gültigkeitsbereich von Klassendefinitionen.
    Jürgen

    Comment


    • #3
      Hallo Jürgen,

      und wie kann ich diese Assemblies einfügen? Muss ich das über den Code machen?
      Denn im Projektmappen-Explorer habe ich nichts von Assemblies gelesen...

      Danke!

      Comment


      • #4
        Hallo,

        was meinst Du mit "einfügen"? Wenn Du ein Projekt erstellen willst, gibst Du in seinen Eigenschaften an, welcher Ausgabetyp daraus werden soll: meistens Anwendung oder Bibliothek.

        Wenn Du den Bezug auf eine "fremde" Assembly (unter Delphi Package) brauchst, musst Du in der Projektverwaltung eine Referenz hinzufügen (Rechtsklick) und die betreffende DLL auswählen. Anschließend kannst Du die darin verwendeten namespaces benutzen ("using").

        Beispiel: Für Db-Klassen muss eine Referenz auf die Assembly system.data.dll eingefügt werden; dann können mit using System.Data.Common die betreffenden Klassen benutzt werden.

        Übrigens: Bei eigenen Projekten legst Du selbst den namespace fest, zu dem eine jede Klasse gehört.

        Ich hoffe, das war verständlich genug. Jürgen

        Comment


        • #5
          Hallo Jürgen,

          danke für deine Antwort. Jetzt ist mir der Unterschied zwischen Assemblies und Namespaces erst klar geworden.
          Ich habe einfach nur eine Möglichkeit gesucht, mein eigenes Programm zu strukturieren. Wenn ich in Java in einer Klasse ein Package angegeben habe, wurde diese Klasse in diesem Package einsortiert, es entstand also eine Ordnerstruktur.
          Das gleiche versuche ich nun hier zu finden..

          Wie ich unten beschrieben habe, hab ich das ja auch mit Namespaces ausprobiert, aber VC# hat da nicht wirklich einen Ordner erstellt.

          Comment


          • #6
            Hallo,

            wenn im Solution Explorer (Projektmappe) von Visual Studio ein Unterverzeichnis erstellt und eine neue Klasse dort abgelegt wird, ergibt sich automatisch eine durch Punkte abgetrennte Namespace-Struktur.

            Comment


            • #7
              Hallo,

              ich glaube, ich habe mich noch nicht deutlich genug ausgedrückt.

              Wenn ich in Java einer Klasse ein Package zuordne, dann wird die Klasse automatisch in die Ordnerstruktur verschoben, dies sehe ich einmal ab Dateisystem, aber auch im Klassen-Explorer (dort sehe ich die hierarchische Struktur der Packages, in denen die Klassen eingeordnet sind).

              Geht dies so auch in C#?
              Wenn ich also über 100 Klassen im Projekt habe, möchte ich das ja strukturieren. Und das macht man doch mit Namespaces, richtig?
              Aber im Projektmappen-Explorer sehe ich keine Strukturierung nach Namespaces. Da könnte ich dann zusätzlich die Klassen in Ordner verschieben oder ist diese Vorgehenweise nicht gut?

              Hoffe es kann mir jemand helfen :-) Danke!

              Comment


              • #8
                Hallo,

                die angehängte Abbildung zeigt das Ergebnis der folgenden Schritte:

                1. In Visual Studio 2005 wurde ein neues Projekt für eine Klassenbibliothek (Class Library) angelegt.

                2. Im Solution Explorer wurde das Unterverzeichnis Tools angelegt.

                3. Über das Kontextmenü wurde im Unterverzeichnis Tools die neue Klasse Class1 hinzugefügt. Dabei hat Visual Studio 2005 automatisch den folgenden Namespace gesetzt:

                Code:
                using System;
                using System.Collections.Generic;
                using System.Text;
                
                namespace NamespaceDemo.Tools
                {
                    class Class1
                    {
                    }
                }
                Die Klasse wird dann über NamespaceDemo.Tools.Class1 angesprochen. Der Default Namespace-Name kann über den Dialog der Projekteigenschaften geändert werden. Somit ist der Namespace-Name völlig unabhängig von dem Assembly-Namen des Projekts.
                Attached Files

                Comment


                • #9
                  Hallo,

                  vielen Dank, jetzt hat es funktioniert! Ich hatte vorher immer im Hauptverzeichnis die Klasse erstellt und anschließend ins Unterverzeichnis verschoben. Der Namespace wird dann leider nicht aktualisiert.

                  Aber so klappt es, vielen Dank!

                  Comment

                  Working...
                  X