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 10 Weitere C#-Sprachfeatures
Pfeil 10.1 Implizit typisierte Variablen
Pfeil 10.2 Anonyme Typen
Pfeil 10.3 Lambda-Ausdrücke
Pfeil 10.3.1 Projektion und Prädikat
Pfeil 10.4 Erweiterungsmethoden
Pfeil 10.5 Partielle Methoden
Pfeil 10.5.1 Wo partielle Methoden eingesetzt werden
Pfeil 10.6 Operatorüberladung
Pfeil 10.6.1 Einführung
Pfeil 10.6.2 Die Syntax der Operatorüberladung
Pfeil 10.6.3 Die Operatorüberladungen im Projekt »GeometricObjectsSolution«
Pfeil 10.6.4 Die Operatoren »true« und »false« überladen
Pfeil 10.6.5 Benutzerdefinierte Konvertierungen
Pfeil 10.7 Indexer
Pfeil 10.7.1 Überladen von Indexern
Pfeil 10.7.2 Parameterbehaftete Eigenschaften
Pfeil 10.8 Attribute
Pfeil 10.8.1 Das »Flags«-Attribut
Pfeil 10.8.2 Benutzerdefinierte Attribute
Pfeil 10.8.3 Attribute auswerten
Pfeil 10.8.4 Festlegen der Assembly-Eigenschaften in »Assembly-Info.cs«
Pfeil 10.9 Dynamisches Binden
Pfeil 10.9.1 Eine kurze Analyse
Pfeil 10.9.2 Dynamische Objekte
Pfeil 10.10 Unsicherer (unsafe) Programmcode – Zeigertechnik in C#
Pfeil 10.10.1 Einführung
Pfeil 10.10.2 Das Schlüsselwort »unsafe«
Pfeil 10.10.3 Die Deklaration von Zeigern
Pfeil 10.10.4 Die »fixed«-Anweisung
Pfeil 10.10.5 Zeigerarithmetik
Pfeil 10.10.6 Der Operator »->«

Rheinwerk Computing - Zum Seitenanfang

10.5 Partielle MethodenZur nächsten Überschrift

Partielle Klassen kennen Sie bereits, ich habe in Kapitel 3 darüber geschrieben. Noch einmal zur Erinnerung: Eine Klasse kann mit dem Schlüsselwort partial auf zwei oder mehr Quellcode-Dateien verteilt werden. Zur Kompilierzeit wird die auf mehrere Quellcodedateien verteilte Klasse so behandelt, als würde sie in einer Quellcodedatei vorliegen.

Es gibt neben den partiellen Klassen aber auch partielle Methoden. Partielle Methoden stellen eine Option dar, die wahrgenommen werden kann, aber nicht muss. Das erinnert uns ein wenig an Ereignisse, auf deren Auslösung wir mit einem Ereignishandler reagieren können oder auch nicht. Tatsächlich sind sich Ereignisse und partielle Methoden sehr ähnlich. Doch ehe wir uns das im Detail ansehen, lassen Sie uns zuerst über die Bedingungen sprechen, die beim Einsatz partieller Methoden beachtet werden müssen:

  • Partielle Methoden setzen eine partielle Klassendefinition voraus.
  • Der Rückgabetyp einer partiellen Methode ist grundsätzlich void.
  • Partielle Methoden dürfen keine out-Parameter haben.
  • Eine partielle Methode darf weder einen Zugriffsmodifizierer noch virtual, abstract, override, new und sealed aufweisen.

Nun wollen wir uns auch eine einfache Klasse ansehen, in der zwei partielle Methoden definiert sind.

// Beispiel: ..\Kapitel 10\PartielleMethoden
public partial class Person {
// Felder
private string _Name { get; set; }
public int Alter { get; set; }
// Partielle Methoden
partial void ChangingName(string name);
partial void ChangedName();
// Eigenschaft
public string Name {
get { return _Name; }
set {
ChangingName(_Name);
_Name = value;
ChangedName();
}
}
}

Listing 10.13 Das Beispielprogramm »PartielleMethoden«

Die partiellen Methoden ChangingName und ChangedName werden aufgerufen, bevor beziehungsweise nachdem sich der Wert der Eigenschaft Name geändert hat. Erfährt diese Klasse keine Erweiterung durch eine partielle Definition, wird der Compiler die partiellen Methoden nicht kompilieren und die Aufrufe der partiellen Methoden ignorieren.

Möglicherweise sind wir aber an einer Reaktion im Zusammenhang mit der Namensänderung interessiert. Vielleicht möchten wir diese sogar protokollieren oder uns ganz einfach nur die Änderung anzeigen lassen. Das ist ganz einfach zu realisieren, indem wir in der Klasse Person das Angebot der partiellen Methoden nutzen und diesen Code schreiben.

public partial class Person {
partial void ChangingName(string name) {
Console.WriteLine("Der alte Name '{0}' wird geändert.", name);
}
partial void ChangedName() {
Console.WriteLine("Name erfolgreich geändert.");
}
}

Listing 10.14 Die partiellen Methoden des Beispielprogramms

Zum Testen der Klasse Person genügt uns ganz einfacher Programmcode:

static void Main(string[] args){
Person pers = new Person { Name = "Fischer", Alter = 67 };
pers.Name = "Müller";
Console.WriteLine(pers.Name);
Console.ReadLine();
}

Listing 10.15 Testen des Beispielprogramms

Die Ausgabe an der Konsole zeigt uns an, dass wir den Namen der Person verändert haben. Also nichts, was besonders aufregend wäre.


Rheinwerk Computing - Zum Seitenanfang

10.5.1 Wo partielle Methoden eingesetzt werdenZur vorigen Überschrift

Partielle Methoden sind dort anzutreffen, wo Assistenten (natürlich insbesondere die von Visual Studio) automatisch Code erzeugen. Nehmen wir beispielsweise an, ein Assistent würde die Klasse Person wie folgt erzeugen:

public class Person {
// Felder
private string _Name { get; set; }
public int Alter { get; set; }
// Eigenschaft
public string Name {
get { return _Name; }
set { _Name = value; }
}
}

Listing 10.16 Nichtpartielle Klasse »Person«

Beachten Sie, dass die Klasse Person im Listing 10.16 nicht partial ist und folgerichtig auch keine partielle Methoden anbieten kann. Sie können den Quellcode nach eigenem Ermessen anpassen oder verändern, beispielweise in der Eigenschaft Name wie folgt:

public string Name {
get { return _Name; }
set {
Console.WriteLine("Der alte Name '{0}' wird geändert.", _Name);
_Name = value;
Console.WriteLine("Name erfolgreich geändert.");
}
}

Listing 10.17 Benutzerdefinierte Anpassung der Eigenschaft »Name«

Dagegen ist grundsätzlich nichts einzuwenden. Jetzt kommt das große Aber: Viele Assistenten ermöglichen eine Aktualisierung der automatisch erzeugten Klassen. In unserem fiktiven Fall wäre davon die Klasse Person betroffen. Aktualisiert der Assistent jedoch die Klasse Person, sind die Änderungen, die wir in der Eigenschaft Name vorgenommen haben, verloren. Sie werden schlichtweg überschrieben.

Und genau in solchen Situationen spielen partielle Methoden ihre Stärke aus. Hinterlegen Sie den zusätzlichen, benutzerdefinierten Programmcode nämlich in partiellen Methoden (wie im Beispiel PartielleMethoden gezeigt), werden die Codeergänzungen nicht überschrieben: Sie bleiben erhalten. Darüber hinaus ist auch weiterhin gewährleistet, dass die partiellen Methoden aufgerufen werden – zumindest solange der Assistent partielle Methoden bereitstellt. Aber das ist in der Regel der Fall.

Weiter hinten im Buch, wenn wir uns mit dem ADO.NET Entity Framework beschäftigen, werden Ihnen partielle Methoden wieder über den Weg laufen.



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