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

Inhaltsverzeichnis
1 Einführung
2 Grundlagen
3 Fehlerbehandlung
4 Erweiterte Grundlagen
5 Objektorientierte Programmierung
6 Wichtige Klassen in .NET
7 Weitere Elemente eines Windows-Programms
8 Datenbank-Anwendungen mit ADO.NET
9 Internet-Anwendungen mit ASP.NET
10 Zeichnen mit GDI+
11 Neues in Visual Basic 2008
12 Beispielprojekte
A Installation
B Lösungen der Übungsaufgaben
Stichwort

Buch bestellen
Ihre Meinung?

Spacer
 <<   zurück
Einstieg in Visual Basic 2008 von Thomas Theis
Inkl. zahlreicher Beispiele und Uebungen
Buch: Einstieg in Visual Basic 2008

Einstieg in Visual Basic 2008
geb., mit DVD
442 S., 24,90 Euro
Rheinwerk Computing
ISBN 978-3-8362-1192-5
Online bestellenJetzt online bestellen
* versandkostenfrei in (D) und (A)
Pfeil 11 Neues in Visual Basic 2008
  Pfeil 11.1 Automatische Datentyp-Erkennung
  Pfeil 11.2 Vereinfachte Objekt-Initialisierung
  Pfeil 11.3 Anonyme Typen
    Pfeil 11.3.1 Vergleich von Objekten
    Pfeil 11.3.2 Schlüssel-Eigenschaften
  Pfeil 11.4 Erweiterung von Klassen durch externe Methoden
    Pfeil 11.4.1 Erweiterung eines Datentyps
    Pfeil 11.4.2 Erweiterung einer eigenen Klasse
  Pfeil 11.5 Lambda-Ausdrücke
  Pfeil 11.6 Verbesserungen der IntelliSense-Entwicklerunterstützung
  Pfeil 11.7 LINQ: Language INtegrated Query
    Pfeil 11.7.1 Klasse List
    Pfeil 11.7.2 Eine Liste von Variablen mit LINQ abfragen
    Pfeil 11.7.3 Eine Liste von Objekten mit LINQ abfragen
  Pfeil 11.8 MS SQL Server Compact 3.5
    Pfeil 11.8.1 Anlegen einer Datenbank
    Pfeil 11.8.2 Datenbankzugriff mit Visual Basic
  Pfeil 11.9 WPF (Windows Presentation Foundation)
    Pfeil 11.9.1 Eine einfache WPF-Anwendung
    Pfeil 11.9.2 Steuerelemente über die Toolbox hinzufügen
    Pfeil 11.9.3 Steuerelemente über XAML-Code hinzufügen


Rheinwerk Computing - Zum Seitenanfang

11.3 Anonyme Typen  Zur nächsten ÜberschriftZur vorigen Überschrift

Anonymous Types

Das Feature »Anonymous Types« ermöglicht die Erzeugung von Objekten ohne zugehörige Klassendefinition. Man erzeugt mit dem Objekt eine anonyme Klasse, d. h. eine Klasse ohne eigenen Namen. Diese Klasse hat genau die Elemente, die bei der Erzeugung des Objekts angegeben werden.

Eine solche Vorgehensweise ist z. B. bei Datenbankabfragen sinnvoll. Man kann durch eine bestimmte Datenbankabfrage ein Objekt erzeugen, das die Felder dieser Abfrage und die Werte dieser Felder umfasst, ohne vorher für jede denkbare Abfrage eine eigene Klasse definiert zu haben.


Rheinwerk Computing - Zum Seitenanfang

11.3.1 Vergleich von Objekten  Zur nächsten ÜberschriftZur vorigen Überschrift

Objekte von anonymen Klassen haben einige Besonderheiten. Einige dieser Besonderheiten werden anhand des folgenden Beispiels (p1103) erläutert:

Public Class frm1103 
   Private Sub cmdAnzeigen1_Click( ... ) Handles ... 
      Dim p1 = New With _ 
         {.vorname = "Peter", .alter = 23} 
      Dim p2 = New With _ 
         {.vorname = "Michael", .alter = 35} 
      Dim p3 = New With _ 
         {.vorname = "Sonja", .alter = 28, _ 
          .nachname = "Maier"} 
 
      lblA.Text = p1.vorname & ", " & p1.alter 
      p2.vorname = "Peter" 
      p2.alter = 23 
      lblA.Text &= vbCrLf & p2.vorname _ 
         & ", " & p2.alter 
 
      If p1.Equals(p2) Then 
         lblA.Text &= vbCrLf & "Es wird auf " _ 
            & "das selbe Objekt verwiesen" 
      Else 
         lblA.Text &= vbCrLf & "Es wird nicht auf " _ 
            & "das selbe Objekt verwiesen" 
      End If 
 
      p1 = p2 
      If p1.Equals(p2) Then 
         lblA.Text &= vbCrLf & "Es wird auf " _ 
            & "das selbe Objekt verwiesen" 
      Else 
         lblA.Text &= vbCrLf & "Es wird nicht auf " _ 
            & "das selbe Objekt verwiesen" 
      End If 
 
      'p1 = p3 
   End Sub 
End Class

Zur Erläuterung:

    New With

  • Es wird mithilfe von New With ein Objekt p1 einer anonymen Klasse erzeugt. Diese Klasse hat die Eigenschaften vorname und alter.
  • Das Objekt p2 wird mit den gleichen Eigenschaften initialisiert. Daher ist es ein Objekt der gleichen anonymen Klasse wie p1.
  • Das Objekt p3 wird mit einer zusätzlichen Eigenschaft initialisiert. Daher ist es ein Objekt einer anderen anonymen Klasse als p1 und p2.
  • Bei der Erzeugung von Objekten anonymer Klassen wird mit Objekt-Initialisierung (siehe vorheriger Abschnitt) und automatischer Datentyp-Erkennung (siehe Abschnitt 11.1) gearbeitet.
  • Die Eigenschaften der Objekte in diesem Programm sind öffentlich, also nicht schreibgeschützt.

    Equals

  • Jede anonyme Klasse ist direkt von der Basisklasse Object abgeleitet. Die Methode Equals() wird damit geerbt. Sie stellt fest, ob zwei Objektverweise auf das gleiche Objekt verweisen. Dies ist zunächst nicht der Fall. Nach der Zuweisung p1 = p2 ist es der Fall.
  • Eine Zuweisung der Form p1 = p3 ist nicht möglich, da die beiden Objekte zu unterschiedlichen Klassen gehören.

Rheinwerk Computing - Zum Seitenanfang

11.3.2 Schlüssel-Eigenschaften  topZur vorigen Überschrift

Key

Eine Veränderung des Verhaltens anonymer Klassen erhält man, wenn einzelne Eigenschaften mithilfe von Key zu Schlüssel-Eigenschaften gemacht werden.

Dies zeigt das folgende Programm, ebenfalls in p1103:

Public Class frm1103 
[ ... ] 
   Private Sub cmdAnzeigen2_Click( ... ) Handles ... 
      Dim p1 = New With _ 
         {Key .vorname = "Peter", .alter = 23} 
      Dim p2 = New With _ 
         {Key .vorname = "Peter", .alter = 35} 
 
      lblA.Text = p1.vorname & ", " & p1.alter 
 
      'p2.vorname = "Michael" 
      p2.alter = 48 
      lblA.Text &= vbCrLf & p2.vorname & ", " & p2.alter 
 
      If p1.Equals(p2) Then 
         lblA.Text &= vbCrLf _ 
            & "Die Objekte sind gleich" 
      Else 
         lblA.Text &= vbCrLf _ 
            & "Die Objekte sind nicht gleich" 
      End If 
   End Sub 
End Class

Zur Erläuterung:

  • Die Eigenschaft vorname wurde mithilfe von Key zur Schlüssel-Eigenschaft.
  • Es kann mehrere Schlüssel-Eigenschaften geben. Werte von Schlüssel-Eigenschaften sind schreibgeschützt.
  • Die Anweisung p2.vorname = "Michael" ist daher nicht möglich.
  • Objekte sind dann per Definition gleich, wenn sie
  • die gleichen Eigenschaften in der gleichen Reihenfolge mit den gleichen (automatisch erkannten) Datentypen haben,
  • die gleichen Schlüssel-Eigenschaften haben und
  • die gleichen Werte bei den Schlüssel-Eigenschaften haben.
  • Die beiden Objekte p1 und p2 in diesem Programm sind gleich, da sie
  • die gleichen Eigenschaften vorname und alter in der gleichen Reihenfolge mit den gleichen Datentypen String bzw. Integer haben,
  • die gleiche Schlüssel-Eigenschaft vorname sowie
  • den gleichen Wert »Peter« bei der Schlüssel-Eigenschaft haben.


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: Einstieg in Visual Basic 2008






Einstieg in Visual Basic 2008
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: Visual Basic 2012






 Visual Basic 2012


Zum Katalog: Schrödinger programmiert C++






 Schrödinger
 programmiert C++


Zum Katalog: IT-Handbuch für Fachinformatiker






 IT-Handbuch für
 Fachinformatiker


Zum Katalog: Java ist auch eine Insel






 Java ist auch
 eine Insel


Zum Katalog: Einstieg in Python






 Einstieg in Python


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo





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


[Rheinwerk Computing]

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