Klassenbibliotheken: Unterschied zwischen den Versionen

Aus Byte-Welt Wiki
Zur Navigation springenZur Suche springen
(Erstellen:)
Zeile 7: Zeile 7:
 
Vorraussetzung ist das Vorhandensein eines geöffneten Projekts, hier eine Konsolenanwendung mit dem Namen ''ClassLibTest'' (Abb.1).<br/>
 
Vorraussetzung ist das Vorhandensein eines geöffneten Projekts, hier eine Konsolenanwendung mit dem Namen ''ClassLibTest'' (Abb.1).<br/>
 
Natürlich ist es auch möglich, nur eine Klassenbibliothek zu erstellen und zu kompilieren (das Ergebnis ist immer eine DLL-Datei), aber wir wollen sie ja auch testen.<br/>
 
Natürlich ist es auch möglich, nur eine Klassenbibliothek zu erstellen und zu kompilieren (das Ergebnis ist immer eine DLL-Datei), aber wir wollen sie ja auch testen.<br/>
Deshalb die Konsolenanwendung.<b/>  
+
Deshalb die Konsolenanwendung.<br/>  
 
<br/>
 
<br/>
 
  [[Bild:Libbild1.jpg]]<br/>
 
  [[Bild:Libbild1.jpg]]<br/>

Version vom 20. November 2009, 18:20 Uhr

Definition:

Eine Klassenbibliothek ist eine Sammlung von Programmelementen, die völlig selbstständig sind. Sie eignet sich zur Wiederverwendung, wird in eine DLL-Datei kompiliert und ist nicht eigenstartfähig.

Erstellen:

Wie man eine Klassenbibliothek erstellt, möchte ich mittels VisualStudio 2008 Express Edition (diese Version ist kostenlos) anschaulich erläutern.
Vorraussetzung ist das Vorhandensein eines geöffneten Projekts, hier eine Konsolenanwendung mit dem Namen ClassLibTest (Abb.1).
Natürlich ist es auch möglich, nur eine Klassenbibliothek zu erstellen und zu kompilieren (das Ergebnis ist immer eine DLL-Datei), aber wir wollen sie ja auch testen.
Deshalb die Konsolenanwendung.

Libbild1.jpg
(Abb.1)


  • Zuerst markieren wir im Projektmappen-Explorer die Projektmappe namens ClassLibTest mit der rechten Maustaste, klicken auf Hinzufügen und danach auf Neues Projekt (Abb.2).


Libbild2.jpg
(Abb.2)


  • Nun erweitern wir unsere Projektmappe mit dem Projekttyp Klassenbibliothek mit dem Namen ClassLibrary1, wie in Abbildung 3.


Libbild3.jpg
(Abb.3)


  • Unser Projektmappen-Explorer sollte danach wie in Abb.4 aussehen. Wir haben erfolgreich eine Klassenbibliothek hinzugefügt.


Libbild4.jpg
(Abb.4)

Verknüpfung mit dem Projekt ClassLibTest

Nun müssen wir unserem Projekt ClassLibTest auch bekanntgeben, dass es mit einer Klassenbibliothek namens ClassLibrary1 zusammen arbeiten soll, denn von alleine käme es nie auf solch eine Idee.
Das heißt, wir müssen einen Verweis hinzufügen.

  • Wir suchen also den Knotenpunkt unseres Projektes ClassLibTest und öffnen das Kontextmenü mit der rechten Maustaste wie in Abbildung 5.


Libbild5.jpg
(Abb.5)


  • Dort wählen wir die Option Verweis hinzufügen und erhalten folgendes Fenster, in dem wir den Reiter Projekte anklicken (Abb.6):


Libbild6.jpg
(Abb.6)


  • Dort sollte sich die Klassenbibliothek befinden, die wir auswählen und das Ganze mit OK schließen.
  • Im Verzeichnis Verweise unseres Projektes ClassLibTest sollte nun die Klassenbibliothek ClassLibrary1 stehen, wie in Abb.7.


Libbild7.jpg
(Abb.7)


  • Zum Schluss legen wir das Projekt ClassLibTest noch als Startprojekt fest, wie es Abb.8 zeigt.


Libbild8.jpg
(Abb.8)





Um nun mit Objekten der Klassen von ClassLibrary1 arbeiten zu können, ist die vollständige Angabe notwendig. Namespace.Klasse objekt = new Namespace.Klasse();.

Ein Beispiel: <code=CSharp> ClassLibrary1.Class1 myObjekt = new ClassLibrary1.Class1(); </Code=CSharp>

Eine Alternative zu dieser Variante, die auf Dauer sehr schreibaufwändig ist, zeigen die nächsten beiden Abbildungen (9 und 10).
Durch Bekanntgabe des Namespace der Klassenbibliothek, welches sich vereinbarungsgemäß genau so nennt (ClassLibrary1), umgehen wir diesen Mehraufwand:

Libbild9.jpg
(Abb.9, eine Klasse in der Klassenbibliothek ClassLibrary1)


Libbild10.jpg
(Abb.10, eine Klasse in unserem aktuellen Projekt ClassLibTest)

Wenn man diesen Code nun compiliert und ausführt erhält man folgende Ausgabe:

Ich befinde mich in einer Klassenbibliothek


Wichtig: Wenn man mit Objekten von Klasse einer Klassenbibliothek arbeiten möchte ist darauf zu achten,
dass sämtliche Elemente (Variable, Methoden, u.s.w.) public deklariert werden - private, oder internal deklarierte Elemente sind nicht sichtbar.
Ohne Zugriffsmodifizierer ist, eine Methode zum Beispiel, als internal anzusehen. Das Gleiche gilt natürlich auch für Klassen.


--Jango 13:41, 20. Nov 2009 (UTC)