AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Namespaces

Ein Thema von Pseudemys Nelsoni · begonnen am 16. Jul 2005 · letzter Beitrag vom 16. Jul 2005
Antwort Antwort
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#1

Namespaces

  Alt 16. Jul 2005, 11:38
Moin,

mag mir jemand erklären was man unter namespaces zu verstehen hat? Ich habe zwar schon in meinem Buch gelesen, aber ich werde nicht ganz schlau draus, in selbigem sahen die nämlich fast aus wie Klassen.

Die Frage bezieht sich nicht unbedingt auf Delphi, sondern auf jede X-beliebige Sprache.
Mario
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#2

Re: Namespaces

  Alt 16. Jul 2005, 11:47
Imho gibt es Namespaces nur in C# (eventuell auch Java, aber Java kenn ich persönlich nicht). Man kann sie ähnlich wie eine Delphi-Unit ansehen: Man kann in einer Datei Namespaces eintragen (muss man sogar). Dort kommt dann als nächstes die Klasse (oder ein weiterer Namespace). Man kann am Ende die Namespaces in der uses/using-Klausel aufnehmen, um damit zu arbeiten.

Der Unterschied zu Units besteht imho darin, dass in einer Datei beliebig viele Namespaces stehen können, und dass man Namespaces imho verschachteln kann.

Schau dir mal einen C# oder D.NET-Source an. Da steht oben immer
Code:
using System;
using System.Bla;
Das sind Namespaces, die da eingetragen werden. Im .NET-Framework werden hunderte Namespaces mitgeliefert.

//edit: Ich seh grad, Namespaces gibt es in verschiedenen Sprachen. In .NET kommt man aber beispielsweise nicht drum herum, welche zu benutzen

Berichtigt mich übrigens, wenn ich irgendwo falsch liegen sollte
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#3

Re: Namespaces

  Alt 16. Jul 2005, 11:54
Moin Malo,

in C++ gibt es auch Namespaces und in Delphi seit 2005 auch.

Bei deinem Beispiel frage ich mich nur, wieso nicht alle normal in "System" steht (also ohne namespaces), dann könnte man sich doch das doppelte "using" sparen, oder?
Mario
  Mit Zitat antworten Zitat
Filou

Registriert seit: 31. Mai 2004
39 Beiträge
 
Delphi 7 Personal
 
#4

Re: Namespaces

  Alt 16. Jul 2005, 11:59
Du kannst ebenfalls in C/C++ eigene Namespaces erstellen. Die Einbindung erfolgt dann über:

Code:
using namespace ???;
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#5

Re: Namespaces

  Alt 16. Jul 2005, 12:13
Ich glaube, die einfachste Erklärung wäre ein Vergleich zu den Units in Delphi32.
Einziger Unterschied ist, dass sich ein namepspace nicht auf eine Source-Datei (Unit) beschränkt.

Delphi-Quellcode:
namespace Miep;

interface

type
  Class1 = public class
  end;
  
  Class2 = public class(Class1)
  end;

implementation

end.
Man könnte Class2 auch ineine andere Datei packen ohne das sich der Code ändern würde:
Delphi-Quellcode:
namespace Miep;

interface

type
  Class1 = public class
  end;

implementation

end.
Delphi-Quellcode:
namespace Miep;

interface

type
  Class2 = public class(Class1)
  end;

implementation

end.
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#6

Re: Namespaces

  Alt 16. Jul 2005, 12:43
Was dazu kommt ist, das Namespaces eine Hierarchie darstellen. So kann man seine Klassen in den Namespaces einfach einsortieren und findet sie somit schnell wieder.

Beispiel-Namespaces bei mir:
gwp.framework.database, gwp.framework.security, gwp.webshop.session

Wie man sieht fangen alle Namespaces bei mir mit dem Kürzel für meine Firma an, dann kommt der Bereich zu dem die Klassen gehören (das zurgunde liegende Framwork oder eben ein spezifisches Projekt) und dann der Teil des Projektes, in dem die dort liegenden Klassen arbeiten.

Will ich jetzt per WMI Daten auslesen und zur Auswertung wo ablegen dann suche ich meine Klassen aus gwp.framework.wmi und gwp.framework.database zusammen.

Jeder Namespace landet bei mir übrigens zudem noch in einer eigenen Assembly, so dass ich Teile die verändert werden ganz einfach nur per einer .dll austauschen kann ohne das es den Rest der Anwendungen betrifft.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#7

Re: Namespaces

  Alt 16. Jul 2005, 12:54
Zitat von Phoenix:
Was dazu kommt ist, das Namespaces eine Hierarchie darstellen.
Eigentlich nicht.
System.X gehört nicht zu System und System.X.Y nicht zu System.X. Das sind alles eigene namespaces.
Aber natürlich legt man sie pseudo-hierarchisch an, da das ungemein intuitiver ist.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz