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

Inhaltsverzeichnis
Vorwort zur 6. Auflage
1 Allgemeine Einführung in .NET
2 Grundlagen der Sprache C#
3 Das Klassendesign
4 Vererbung, Polymorphie und Interfaces
5 Delegates und Ereignisse
6 Strukturen und Enumerationen
7 Fehlerbehandlung und Debugging
8 Auflistungsklassen (Collections)
9 Generics – Generische Datentypen
10 Weitere C#-Sprachfeatures
11 LINQ
12 Arbeiten mit Dateien und Streams
13 Binäre Serialisierung
14 XML
15 Multithreading und die Task Parallel Library (TPL)
16 Einige wichtige .NET-Klassen
17 Projektmanagement und Visual Studio 2012
18 Einführung in die WPF und XAML
19 WPF-Layout-Container
20 Fenster in der WPF
21 WPF-Steuerelemente
22 Elementbindungen
23 Konzepte von WPF
24 Datenbindung
25 Weitere Möglichkeiten der Datenbindung
26 Dependency Properties
27 Ereignisse in der WPF
28 WPF-Commands
29 Benutzerdefinierte Controls
30 2D-Grafik
31 ADO.NET – Verbindungsorientierte Objekte
32 ADO.NET – Das Command-Objekt
33 ADO.NET – Der SqlDataAdapter
34 ADO.NET – Daten im lokalen Speicher
35 ADO.NET – Aktualisieren der Datenbank
36 Stark typisierte DataSets
37 Einführung in das ADO.NET Entity Framework
38 Datenabfragen des Entity Data Models (EDM)
39 Entitätsaktualisierung und Zustandsverwaltung
40 Konflikte behandeln
41 Plain Old CLR Objects (POCOs)
Stichwort

Download:
- Beispiele, ca. 62,4 MB

Jetzt Buch bestellen
Ihre Meinung?

Spacer
Visual C# 2012 von Andreas Kühnel
Das umfassende Handbuch
Buch: Visual C# 2012

Visual C# 2012
Rheinwerk Computing
1402 S., 6., aktualisierte und erweiterte Auflage 2013, geb., mit DVD
49,90 Euro, ISBN 978-3-8362-1997-6
Pfeil 6 Strukturen und Enumerationen
Pfeil 6.1 Strukturen – eine Sonderform der Klassen
Pfeil 6.1.1 Die Definition einer Struktur
Pfeil 6.1.2 Initialisieren einer Strukturvariablen
Pfeil 6.1.3 Konstruktoren in Strukturen
Pfeil 6.1.4 Änderung im Projekt »GeometricObjects«
Pfeil 6.2 Enumerationen (Aufzählungen)
Pfeil 6.2.1 Wertzuweisung an enum-Mitglieder
Pfeil 6.2.2 Alle Mitglieder einer Aufzählung durchlaufen
Pfeil 6.3 Boxing und Unboxing

Rheinwerk Computing - Zum Seitenanfang

6.3 Boxing und Unboxing

Zu den Referenztypen werden Klassen und Delegates gerechnet, Strukturen und Enumerationen bilden die Familie der Wertetypen. Um noch einmal die wichtigsten Unterschiede dieser beiden Kategorien auf den Punkt zu bringen: Objekte, die auf Klassen- oder Delegatedefinitionen basieren, werden auf dem Heap verwaltet, Objekte vom Typ einer Struktur oder Enumeration auf dem Stack. Die Verwaltung auf dem Stack schont die Ressourcen und verbessert die Performance, weil der komplexe Overhead der Objektverwaltung im Heap entfällt. Wertetypen sind deshalb dann besonders gut geeignet, wenn sehr viele Objekte dieses Typs erwartet werden können.

In diesem Zusammenhang müssen wir noch eine weitere Technik erörtern: das Boxing und Unboxing. Was ist darunter zu verstehen? Betrachten wir das einfache Beispiel einer Integer-Variablen:

int value = 2;

Im nächsten Schritt weisen wir diese Variable einer Object-Variablen zu. Das ist grundsätzlich überhaupt kein Problem, da hierbei eine implizite Konvertierung stattfindet:

object @object = value;

Listing 6.11 Boxing eines Integers

Beachten Sie, dass dabei ein auf dem Stack abgelegter Wertetyp einem Referenztyp zugewiesen wird, der auf dem Heap gespeichert ist. Der als »Boxing« bezeichnete Vorgang erfordert natürlich einen Mehraufwand der Laufzeitumgebung im Vergleich zu einer Operation, bei der eine Referenzvariable der Objekt-Variablen zugewiesen wird.

Zu einem bestimmten Zeitpunkt soll die implizite Konvertierung auch wieder rückgängig gemacht werden. Bei dieser als »Unboxing« bezeichneten Operation muss der korrekte Zieldatentyp angegeben werden:

int item = (int)@object;

Listing 6.12 Unboxing eines Integers

Aus einem auf dem Heap verwalteten Objekt wird nunmehr erneut ein Objekt, das auf dem Stack liegt. Auch dieser Vorgang geht deutlich zu Lasten der Performance. Microsoft selbst gibt dazu in der Dokumentation einen Faktor von bis zu 20 an, der aber wohl selten erreicht werden dürfte. Dennoch sollten Sie sich merken, dass die Boxing-Operationen nach Möglichkeit in einem Programm vermieden werden sollten – auch wenn das natürlich nicht immer möglich ist.



Ihre Meinung

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.

<< zurück
  Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Visual C# 2012

Visual C# 2012
Jetzt Buch bestellen


 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Rheinwerk-Shop: Professionell entwickeln mit Visual C# 2012






 Professionell
 entwickeln mit
 Visual C# 2012


Zum Rheinwerk-Shop: Windows Presentation Foundation






 Windows Presentation
 Foundation


Zum Rheinwerk-Shop: Schrödinger programmiert C++






 Schrödinger
 programmiert C++


Zum Rheinwerk-Shop: C++ Handbuch






 C++ Handbuch


Zum Rheinwerk-Shop: C/C++






 C/C++


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo





Copyright © Rheinwerk Verlag GmbH 2013
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