Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort zur 5. Auflage
1 Allgemeine Einführung in .NET
2 Grundlagen der Sprache C#
3 Klassendesign
4 Vererbung, Polymorphie und Interfaces
5 Delegates und Ereignisse
6 Weitere .NET-Datentypen
7 Weitere Möglichkeiten von C#
8 Auflistungsklassen (Collections)
9 Fehlerbehandlung und Debugging
10 LINQ to Objects
11 Multithreading und die Task Parallel Library (TPL)
12 Arbeiten mit Dateien und Streams
13 Binäre Serialisierung
14 Einige wichtige .NET-Klassen
15 Projektmanagement und Visual Studio 2010
16 XML
17 WPF – Die Grundlagen
18 WPF-Containerelemente
19 WPF-Steuerelemente
20 Konzepte der WPF
21 Datenbindung
22 2D-Grafik
23 ADO.NET – verbindungsorientierte Objekte
24 ADO.NET – Das Command-Objekt
25 ADO.NET – Der SqlDataAdapter
26 ADO.NET – Daten im lokalen Speicher
27 ADO.NET – Aktualisieren der Datenbank
28 Stark typisierte DataSets
29 LINQ to SQL
30 Weitergabe von Anwendungen
Stichwort

Buch bestellen
Ihre Meinung?

Spacer
<< zurück
Visual C# 2010 von Andreas Kühnel
Das umfassende Handbuch
Buch: Visual C# 2010

Visual C# 2010
geb., mit DVD
1295 S., 49,90 Euro
Rheinwerk Computing
ISBN 978-3-8362-1552-7
Pfeil 3 Klassendesign
Pfeil 3.1 Einführung in die Objektorientierung
Pfeil 3.1.1 Vorteile der objektorientierten Programmierung
Pfeil 3.2 Klassendefinition
Pfeil 3.2.1 Klassen in Visual Studio anlegen
Pfeil 3.2.2 Das Projekt »GeometricObjectsSolution«
Pfeil 3.2.3 Deklaration von Objektvariablen
Pfeil 3.2.4 Zugriffsmodifizierer einer Klasse
Pfeil 3.2.5 Splitten einer Klassendefinition mit »partial«
Pfeil 3.3 Arbeiten mit Objektreferenzen
Pfeil 3.3.1 Prüfen auf Initialisierung
Pfeil 3.3.2 Ein Objekt freigeben
Pfeil 3.3.3 Mehrere Referenzen auf ein Objekt
Pfeil 3.4 Referenz- und Wertetypen
Pfeil 3.5 Eigenschaften eines Objekts
Pfeil 3.5.1 Öffentliche Felder
Pfeil 3.5.2 Datenkapselung mit Eigenschaftsmethoden sicherstellen
Pfeil 3.5.3 Ergänzung der Klasse »Circle«
Pfeil 3.5.4 Lese- und schreibgeschützte Eigenschaften
Pfeil 3.5.5 Sichtbarkeit der Accessoren »get« und »set«
Pfeil 3.5.6 Unterstützung von Visual Studio 2010
Pfeil 3.5.7 Automatisch implementierte Eigenschaften
Pfeil 3.5.8 Vereinfachte Objektinstanziierung mit Objektinitialisierern
Pfeil 3.6 Methoden eines Objekts
Pfeil 3.6.1 Methoden mit Rückgabewert
Pfeil 3.6.2 Methoden ohne Rückgabewert
Pfeil 3.6.3 Methoden mit Parameterliste
Pfeil 3.6.4 Methodenüberladung
Pfeil 3.6.5 Variablen innerhalb einer Methode (Lokale Variablen)
Pfeil 3.6.6 Referenz- und Wertparameter
Pfeil 3.6.7 Zugriff auf private Daten
Pfeil 3.6.8 Namenskonflikte mit »this« lösen
Pfeil 3.6.9 Trennung von Daten und Code im Speicher
Pfeil 3.6.10 Methode oder Eigenschaft?
Pfeil 3.6.11 Methoden und Eigenschaften umbenennen
Pfeil 3.7 Konstruktoren
Pfeil 3.7.1 Konstruktoren bereitstellen
Pfeil 3.7.2 Parametrisierte Konstruktoren und die Objektinitialisierung
Pfeil 3.7.3 Konstruktoraufrufe
Pfeil 3.7.4 Definition von Konstruktoren
Pfeil 3.7.5 »internal«-Konstruktoren
Pfeil 3.7.6 »private«-Konstruktoren
Pfeil 3.7.7 Konstruktorenaufrufe umleiten
Pfeil 3.8 Der Destruktor
Pfeil 3.9 Konstanten in einer Klasse
Pfeil 3.9.1 Konstanten mit dem Schlüsselwort »const«
Pfeil 3.9.2 Schreibgeschützte Felder mit »readonly«
Pfeil 3.10 Statische Klassenkomponenten
Pfeil 3.10.1 Begrifflichkeiten
Pfeil 3.10.2 Statische Klassenvariable in der Klasse »Circle«
Pfeil 3.10.3 Klassenspezifische Methoden
Pfeil 3.10.4 Statische Konstruktoren (Klasseninitialisierer)
Pfeil 3.10.5 Statische Klassen
Pfeil 3.10.6 Stand der Klasse »Circle«


Galileo Computing - Zum Seitenanfang

3.4 Referenz- und Wertetypen topZur vorigen Überschrift

Das .NET-Typsystem kennt nicht nur Klassen zur Beschreibung von Typen. Insgesamt gibt es fünf elementare Typen, die.NET uns zur Verfügung stellt:

  • Klassen (class)
  • Strukturen (struct)
  • Delegates (delegate)
  • Interfaces (interface)
  • Enumerationen (enum)

Im weiteren Verlauf dieses und der nächsten Kapitel werden Sie noch alle kennenlernen. An dieser Stelle soll aber bereits erwähnt werden, dass sich die fünf Typdefinitionen zwei Kategorien zuordnen lassen:

  • Wertetypen
  • Referenztypen

Zu den Wertetypen werden primitive Datentypen wie int und long sowie alle anderen auf Strukturen und Enumerationen basierenden Typen gezählt. Zu den Referenztypen gehören beispielsweise der Typ String, alle Arrays und – ganz allgemein ausgedrückt – alle Klassen. Obwohl es im ersten Augenblick den Anschein haben mag, dass hinter Wertetypen nur »normale« Dateninformationen stehen, werden auch diese als Objekte angesehen und hinter den Kulissen der .NET-Laufzeitumgebung als solche behandelt.

Der Unterschied zwischen Referenz- und Wertetypen ist in der Allozierung des Systemspeichers zu finden. Eine Variable, die einen Wertetyp repräsentiert, alloziert auf dem Stack Speicher für die Daten. Der Stack ist im RAM angesiedelt, wird aber vom Prozessor durch einen sogenannten Stack Pointer direkt unterstützt. Dieser ist in der Lage, auf dem Stack neuen Speicher zu reservieren, kann ihn aber auch freigeben. Dieses Verfahren ist sehr effizient und schneller als das Allozieren von Speicher im Heap für Referenztypen. Als Heap wird der Speicher im RAM bezeichnet, der allgemeinen Zwecken zur Verfügung steht.

Wird mit


int value = 100;

eine int-Variable deklariert, wird der Wert in den Stack geschrieben, weil ein Integer als Struktur definiert ist. Beachten Sie bitte, dass bei einem Wertetyp wie dem Integer der new-Operator zur Initialisierung nicht angegeben werden muss. Bei einem Referenztyp ist das eine unabdingbare Forderung, denn erst mit


Circle kreis = new Circle();

wird auf dem Heap ein Speicherbereich alloziert und initialisiert, auf den danach die Referenz kreis zeigt.

Ein daraus folgendes, wichtiges Unterscheidungsmerkmal zwischen Referenz- und Wertetypen ist, dass Wertetypen niemals den Inhalt null haben können.

Bemerkenswert ist die unterschiedliche Wirkungsweise des Zuweisungsoperators zwischen einem Werte- und einem Referenztyp. Betrachten Sie dazu zunächst das Codefragment eines Wertetyps:


long lngFirst = 64;
long lngSecond = lngFirst;

Nach der Ausführung des Codes existieren zwei Variablen vom Typ long, die denselben Inhalt haben. long wird von der Common Language Runtime (CLR) als Wertetyp angesehen und entsprechend behandelt. Die Änderung des Inhalts der Variablen lngFirst wird sich nicht auf den Inhalt der Variablen lngSecond auswirken, weil zwischen den beiden keine Verbindung existiert. Der Inhalt von lngFirst wird nur nach lngSecond kopiert. Das ist bei Objekten, die auf Referenztypen basieren, ganz anders und wurde bereits in Abschnitt 3.3.3, »Mehrere Referenzen auf ein Objekt«, erläutert.



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen. >> Zum Feedback-Formular
<< zurück
  Zum Katalog
Zum Katalog: Visual C# 2010

Visual C# 2010
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Katalog: Professionell entwickeln mit Visual C# 2012






 Professionell
 entwickeln mit
 Visual C# 2012


Zum Katalog: Windows Presentation Foundation






 Windows Presentation
 Foundation


Zum Katalog: Schrödinger programmiert C++






 Schrödinger
 programmiert C++


Zum Katalog: C++ Handbuch






 C++ Handbuch


Zum Katalog: C/C++






 C/C++


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2010
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern