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 7 Weitere Möglichkeiten von C#
Pfeil 7.1 Namensräume (Namespaces)
Pfeil 7.1.1 Zugriff auf Namespaces
Pfeil 7.1.2 Die »using«-Direktive
Pfeil 7.1.3 Globaler Namespace
Pfeil 7.1.4 Vermeiden von Mehrdeutigkeiten
Pfeil 7.1.5 Namespaces festlegen
Pfeil 7.1.6 Der ::-Operator
Pfeil 7.2 Generics – generische Datentypen
Pfeil 7.2.1 Lösung mit einer generischen Klasse
Pfeil 7.2.2 Typparameter mit Constraints einschränken
Pfeil 7.2.3 Generische Methoden
Pfeil 7.2.4 Generics und Vererbung
Pfeil 7.2.5 Konvertierung von Generics
Pfeil 7.2.6 Generische Delegates
Pfeil 7.2.7 Generische Klassen in der .NET-Klassenbibliothek
Pfeil 7.3 Operatorüberladung
Pfeil 7.3.1 Syntax der Operatorüberladung
Pfeil 7.3.2 Operatorüberladungen in »GeometricObjectsSolution«
Pfeil 7.3.3 »true«- und »false«-Operatoren
Pfeil 7.3.4 Benutzerdefinierte Konvertierungen
Pfeil 7.4 Indexer
Pfeil 7.4.1 Überladen von Indexern
Pfeil 7.4.2 Parameterbehaftete Eigenschaften
Pfeil 7.5 Erweiterungsmethoden
Pfeil 7.6 Implizit typisierte Variablen (Typinferenz)
Pfeil 7.7 Lambda-Ausdrücke
Pfeil 7.8 Anonyme Typen
Pfeil 7.9 Nullable-Typen
Pfeil 7.10 Attribute
Pfeil 7.10.1 Das »Flags«-Attribut
Pfeil 7.10.2 Anmerkungen zu den Attributen
Pfeil 7.10.3 Benutzerdefinierte Attribute
Pfeil 7.10.4 Attribute auswerten
Pfeil 7.10.5 Festlegen der Assembly-Eigenschaften
Pfeil 7.11 Partielle Methoden
Pfeil 7.12 Dynamisches Binden
Pfeil 7.12.1 Eine kurze Analyse
Pfeil 7.12.2 Dynamische Objekte
Pfeil 7.13 Unsicherer (unsafe) Programmcode – Zeigertechnik in C#
Pfeil 7.13.1 Einführung
Pfeil 7.13.2 Das Schlüsselwort »unsafe«
Pfeil 7.13.3 Deklaration von Zeigern
Pfeil 7.13.4 Die »fixed«-Anweisung
Pfeil 7.13.5 Zeigerarithmetik
Pfeil 7.13.6 Der Operator »->«


Galileo Computing - Zum Seitenanfang

7.6 Implizit typisierte Variablen (Typinferenz) topZur vorigen Überschrift


Anmerkung

Gleich zu Anfang dieses Abschnitts sei eine Anmerkung gestattet. In den drei folgenden Abschnitten werden Sie »implizit typisierte Variablen«, »Lambda-Ausdrücke« und »anonyme Typisierung« kennenlernen. Natürlich können Sie diese Techniken in jeder Anwendung nach Belieben nutzen. Das Haupteinsatzgebiet ist aber eine Technologie, die mit dem .NET Framework 3.5 eingeführt worden ist: LINQ (Language Integrated Query). Mit LINQ werden wir uns im gleichnamigen Kapitel 10 beschäftigen, aber der Vollständigkeit halber werden diese C#-Sprachtechniken bereits in diesem Kapitel erklärt.


Bei der Deklaration einer Variablen müssen Sie deren Datentyp angeben. So haben Sie es gelernt. Mit Einführung von C# 3.0 hat sich das geändert. Die Typinferenz gestattet es Ihnen, eine Variable mit dem neuen Schlüsselwort var zu deklarieren, ohne dabei den Datentyp angeben zu müssen:


var x = 5;

Das Schlüsselwort var bedeutet nicht, dass die Variable erst zur Laufzeit gebunden wird. Es bedeutet nur, dass der Compiler den am besten passenden Datentyp aus dem Ausdruck rechts vom Zuweisungsoperator ableitet. In unserem Beispiel wäre es ein Integer. Der Compiler behandelt die Variable dann so, als wäre sie von diesem Typ deklariert worden.

Bei dem abgeleiteten Typ kann es sich um einen integrierten Typ, einen anonymen Typ, einen benutzerdefinierten Typ, einen in der .NET Framework-Klassenbibliothek definierten Typ oder um einen Ausdruck handeln.

Hier folgen noch einige Beispiele, die den Einsatz implizit typisierter Variablen demonstrieren. Sie werden vermutlich die beiden letzten Beispiele noch nicht verstehen, weil ich Ihnen beispielsweise auch noch nicht erklärt habe, was unter einem anonymen Typ zu verstehen ist. Nur Geduld, ich werde das später noch nachholen.


// x wird als Integer kompiliert
var x = 5;
// s wird als String kompiliert
var s = "Aachen";
// arr wird als int[]-Array kompiliert
var arr = new[] { 0, 1, 2 };
// a wird als IEnumerable<Customer> kompiliert
var a = from c in Products
        where c.CategoryID == 2
        select c;
// z wird als anonymer Typ kompiliert
var z = new { Name = "Terry", Age = 34 };
// liste wird als List<int> kompiliert
var liste = new List<int>();

Das Konzept implizit typisierter Variablen hat einige Einschränkungen:

  • Die Variable muss eine lokale Variable sein.
  • Die Initialisierung muss bei der Deklaration erfolgen.
  • Einer implizit typisierten Variablen darf nicht null zugewiesen werden.
  • Ein Methodenparameter darf nicht mit var deklariert werden.
  • Der Rückgabetyp einer Methode darf ebenfalls nicht var sein.

Die Verwendung implizit typisierter Variablen ist nicht nur auf die Verwendung als lokale Variable beschränkt. Sie können sie auch in einer for- oder foreach-Schleife verwenden, wie in den beiden folgenden Codefragmenten gezeigt wird.


for (var x = 0; x < 100; x++)...
foreach (var element in liste)...

Sie werden sich vermutlich nun fragen, wozu implizit typisierte Variablen dienen. Betrachten Sie sie einfach nur als syntaktisches Hilfsmittel, das Sie zwar einsetzen können, auf das Sie aber nach Möglichkeit verzichten sollten. Erforderlich werden solchermaßen deklarierte Variablen aber im Zusammenhang mit LINQ-Abfrageausdrücken (siehe auch Kapitel 10, »LINQ«).



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