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 16 Einige wichtige .NET-Klassen
Pfeil 16.1 Die Klasse »Object«
Pfeil 16.1.1 Referenzvergleiche mit »Equals« und »ReferenceEquals«
Pfeil 16.1.2 »ToString« und »GetType«
Pfeil 16.1.3 Die Methode »MemberwiseClone« und das Problem des Klonens
Pfeil 16.2 Die Klasse »String«
Pfeil 16.2.1 Das Erzeugen eines Strings
Pfeil 16.2.2 Die Eigenschaften von »String«
Pfeil 16.2.3 Die Methoden der Klasse »String«
Pfeil 16.2.4 Zusammenfassung der Klasse »String«
Pfeil 16.3 Die Klasse »StringBuilder«
Pfeil 16.3.1 Allgemeines
Pfeil 16.3.2 Die Kapazität eines »StringBuilder«-Objekts
Pfeil 16.3.3 Die Konstruktoren der Klasse »StringBuilder«
Pfeil 16.3.4 Die Eigenschaften der Klasse »StringBuilder«
Pfeil 16.3.5 Die Methoden der Klasse »StringBuilder«
Pfeil 16.3.6 Allgemeine Anmerkungen
Pfeil 16.4 Der Typ »DateTime«
Pfeil 16.4.1 Die Zeitspanne »Tick«
Pfeil 16.4.2 Die Konstruktoren von »DateTime«
Pfeil 16.4.3 Die Eigenschaften von »DateTime«
Pfeil 16.4.4 Die Methoden der Klasse »DateTime«
Pfeil 16.5 Die Klasse »TimeSpan«
Pfeil 16.6 Ausgabeformatierung
Pfeil 16.6.1 Formatierung mit der Methode »String.Format«
Pfeil 16.6.2 Formatierung mit der Methode »ToString«
Pfeil 16.6.3 Benutzerdefinierte Formatierung

Rheinwerk Computing - Zum Seitenanfang

16.6 AusgabeformatierungZur nächsten Überschrift

Zur Formatierung einer Ausgabe stehen Ihnen zwei Möglichkeiten zur Verfügung:

  • die statische Methode Format der Klasse String
  • die Methode ToString der Schnittstelle IFormatable

Rheinwerk Computing - Zum Seitenanfang

16.6.1 Formatierung mit der Methode »String.Format«Zur nächsten ÜberschriftZur vorigen Überschrift

Rufen wir uns zuerst in Erinnerung, wie die Ausgabe der Methode DateTime.Now an der Konsole lautet:

Console.WriteLine(DateTime.Now.ToString());

Es wird das Datum einschließlich der Uhrzeit angezeigt:

17.09.2003 20:51:56

Mit der Format-Methode können wir eine andere, individuell passendere Ausgabe erzwingen:

Console.WriteLine(String.Format("{0:F}", DateTime.Now));

Damit würde die Anzeige lauten:

Mittwoch, 17. September 2003 20:51:56

Es bietet sich auch die Möglichkeit an, mit

Console.WriteLine(String.Format("{0:D}", DateTime.Now));

auf die Zeitangabe ganz zu verzichten.

Formatierungsvarianten

Die einfachsten Varianten der überladenen Format-Methode lauten:

public static string Format(string format, object arg);
public static string Format(string format, params object[] args);

Der erste Parameter beschreibt eine Zeichenfolge mit einem oder mehreren Formatierungsausdrücken, die in geschweiften Klammern angegeben werden. Dem zweiten Parameter werden die zu formatierenden Objekte übergeben. Die Syntax erinnert sofort an die Formatierungen der Methode Console.WriteLine, die sich tatsächlich intern der Format-Methode bedient.

Unter den weiteren vier Überladungen ist eine besonders hervorzuheben, mit der festgelegt werden kann, welche Sprache bzw. Kultur für die Formatierung verwendet werden soll:

public static string Format(IFormatProvider provider,
string format, params object[] args);

Im ersten Parameter erwartet die Methode String.Format nun ein Objekt, das die Schnittstelle IFormatProvider implementiert. Im .NET Framework sind das drei Klassen:

  • CultureInfo
  • DateTimeFormatInfo
  • NumberFormatInfo

Diese Klassen gehören alle zum Namespace System.Globalization. Die Klasse CultureInfo stellt Informationen über eine bestimmte Kultur bereit, einschließlich des Schriftsystems sowie des verwendeten Kalenders. DateTimeFormatInfo definiert die Anzeige von Datum und Uhrzeit und NumberFormatInfo die Darstellung numerischer Werte – immer abhängig von der jeweiligen Kultur.

Um beispielsweise das aktuelle Systemdatum in italienischer Sprache auszugeben, müssen Sie nur ein entsprechendes CultureInfo-Objekt bereitstellen, das die italienische Kultur beschreibt:

CultureInfo culture = new CultureInfo("it-IT");
// Ausgabe: sabato 20 settembre 2003
Console.WriteLine(String.Format(culture, "{0:D}", DateTime.Now));

Listing 16.30 Datumsausgabe in Italienisch

Mit den Eigenschaften DateTimeFormat und NumberFormat der Klasse CultureInfo kann das Ausgabeformat der spezifischen Kultur abgefragt und sogar neu festgelegt werden. Dazu veröffentlichen die beiden Klassen DateTimeFormatInfo und NumberFormatInfo eine größere Anzahl Eigenschaften. Wie Sie das Dezimaltrennzeichen einer gegebenen Kultur abweichend vom Standard spezifisch festlegen können, zeigt das folgende Codefragment:

double dbl = 12.25;
CultureInfo culture = new CultureInfo("de-DE");
NumberFormatInfo nfi = culture.NumberFormat;
nfi.NumberDecimalSeparator = "*";
Console.WriteLine(String.Format(culture, "{0}", dbl));

Listing 16.31 Individuelles Dezimaltrennzeichen festlegen

Es wird zuerst ein CultureInfo-Objekt erzeugt, das mit de-DE die deutsche Kultur beschreibt. Über dessen Eigenschaft NumberFormat wird die dazu entsprechende Referenz auf NumberFormatInfo ermittelt. Der Eigenschaft NumberDecimalSeparator wird anschließend das Zeichen »*« als neues Dezimaltrennzeichen zugewiesen.

Es kann sich als nützlich erweisen, ein kulturunabhängiges Format zur Verfügung zu stellen. Dieses erhalten Sie mit der statischen Eigenschaft InvariantCulture der Klasse CultureInfo. Das zurückgegebene CultureInfo-Objekt ist der englischen Sprache zugeordnet, ohne dabei landesspezifische Unterschiede zu berücksichtigen.

Standardformatzeichen der Klasse »NumberFormatInfo«

In Tabelle 16.8 sind die Standardformatzeichen für die einzelnen Standardmuster der NumberFormatInfo-Klasse aufgeführt. Teilweise können die Standardmuster auch durch Eigenschaften verändert werden. Genauere Informationen dazu entnehmen Sie bitte der .NET-Dokumentation zu der Klasse.

Tabelle 16.8 Formatzeichen der Methode »String.Format«

Formatzeichen Beschreibung

C oder c

Ausgabe im Währungsformat (einschließlich des Währungssymbols der aktuellen Ländereinstellung)

D oder d

Wird nur von ganzzahligen Datentypen unterstützt. Durch das Anhängen einer Zahl kann spezifiziert werden, wie viele Stellen die auszugebende Zahlenfolge aufweisen soll. Fehlende Ziffern werden mit Nullen aufgefüllt.

E oder e

Ausgabe im Exponentialformat

F oder f

Hängt an das Ende einer Zahl Dezimalstellen an. Die Anzahl der Nachkommastellen kann hinter dem Formatspezifizierer angegeben werden. Der Standard sind zwei Stellen.

G oder g

Allgemein formatierte Ausgabe

N oder n

Die Ausgabe erfolgt im Format ddd.ddd.ddd,dd.

P oder p

Ausgabe als Prozentzahl

R oder r

Roundtrip-Format. Es wird sichergestellt, dass ein Zurückkonvertieren nicht zu Genauigkeitsverlusten führt.

X oder x

Ausgabe als Hexadezimalzahl (ausschließlich für Ganzzahlenformate)

Standardformatzeichen der Klasse »DateTimeFormatInfo«

In Tabelle 16.9 sind die wichtigsten Standardmuster zur Formatierung von Datum und Uhrzeit aufgezählt. Maßgeblich sind auch hier die Einstellungen unter Ländereinstellung. Wie schon bei den Standardformatmustern der Klasse NumberFormatInfo können Sie über Eigenschaften einige der Standardmuster nach eigenen Vorstellungen ändern. Weitere Informationen entnehmen Sie auch hier der .NET-Dokumentation.

Tabelle 16.9 Formatcodes für Datum und Uhrzeit

Formatzeichen Beschreibung

d

Kurzes Datum (22.09.2003)

D

Langes Datum (Montag, 22. September 2003)

f

Langes Datum, inklusive Zeitangabe

(Montag, 22. September 2003 22:30)

F

Langes Datum, inklusive langer Zeitangabe

(Montag, 22. September 2003 22:30:45)

g

Kurzes Datum, inklusive Zeitangabe

(22.09.2003 22:30)

G

Kurzes Datum, inklusive langer Zeitangabe

(22.09.2003 22:30:45)

M oder m

Tag und Monat (22 September)

R oder r

Datum nach dem Muster des RFC1123

(Mon, 22 Sep 2003 22:30:45 GMT)

t

Kurze Zeitangabe (22:30)

T

Lange Zeitangabe (22:30:45)

Y oder y

Monat und Jahr (September 2003)

Dazu zwei Beispiele:

// Ausgabe: Dienstag, 23. September 2003 12:12:55
string date = String.Format("{0:F}", DateTime.Now)
// Ausgabe: 23 September
string date = String.Format("{0:M}", DateTime.Now)

Rheinwerk Computing - Zum Seitenanfang

16.6.2 Formatierung mit der Methode »ToString«Zur nächsten ÜberschriftZur vorigen Überschrift

Von der Klasse Object erbt jede .NET-Klasse die parameterlose Methode ToString. Darüber hinaus werden sowohl von den numerischen Typen als auch von der Klasse String Überladungen angeboten, die direkt auf dem zu formatierenden Wert aufgerufen werden. Sie können sich zum Beispiel mit

float d = 0.01985F;
Console.WriteLine(d.ToString("P"));

die float-Zahl als Prozentzahl oder mit

float d = 123.505F;
Console.WriteLine(d.ToString("E"));

im Exponentialformat ausgeben lassen. Auch hier wird die Einstellung der aktuellen Kultur berücksichtigt. Sie können als Formatierungszeichenfolge alle Formatzeichen angeben, die in den Tabellen 16.8 und 16.9 aufgeführt sind. Die geschweiften Klammern sind nicht erforderlich. Um landesspezifische Ausgaben zu ermöglichen, können Sie auch ein IFormatProvider-Objekt übergeben.

public virtual string ToString(IFormatProvider);

Beachten Sie, dass die verschiedenen Datentypen unterschiedlich viele Überladungen von ToString zur Verfügung stellen.


Rheinwerk Computing - Zum Seitenanfang

16.6.3 Benutzerdefinierte FormatierungZur nächsten ÜberschriftZur vorigen Überschrift

Zahlen und Zeichenfolgen

Über die vordefinierten Formate hinaus können Sie auch eigene Formatierungen festlegen. Dazu wird Ihnen von .NET eine Reihe von Formatzeichen bereitgestellt, um die Ausgabe von Ganz- und Dezimalzahlen sowie Zeichenfolgen nach eigenen Vorstellungen zu beeinflussen.

Tabelle 16.10 Formatzeichen für benutzerdefinierte Zahlen- und Zeichenformate

Formatzeichen Beschreibung

0

Die Zahl 0 dient als Platzhalter für eine Zahl. Nichtsignifikante Nullen
werden durch die Zahl 0 dargestellt.

#

Die Zahl 0 dient als Platzhalter für eine Zahl. Nichtsignifikante Nullen werden durch Leerzeichen dargestellt.

.

Das erste '.'-Zeichen in der Formatzeichenfolge bestimmt die Position des Dezimaltrennzeichens im formatierten Wert.

,

Dient als Tausendertrennung. Jedes Auftreten des Zeichens bewirkt eine Division durch 1000.

%

Das Zeichen bewirkt die Multiplikation mit 100. Das Prozentzeichen wird angehängt.

E0, E+0, E-0,
e0
, e+0, e-0

Die Codes bewirken die Exponentialdarstellung einer Zahl. Mit E+0 und e+0 wird das positive Vorzeichen immer angezeigt, mit allen anderen immer nur das negative. Die Anzahl der Nullen bestimmt die Mindestanzahl von Ziffern des Exponenten.

\

Das folgende Zeichen in der Formatzeichenfolge wird als Escape-Sequenz interpretiert.

"ABC"

Die in Anführungszeichen stehenden Zeichen werden direkt in die Ergebniszeichenfolge kopiert.

Nachfolgend wird an einigen Beispielen gezeigt, wie die Formatzeichen eingesetzt werden und zu welchem Ergebnis die Anweisungen führen:

double value = 12345.67890;
string text = value.ToString("000"); // Ausgabe: 12346
text = value.ToString("0000000"); // Ausgabe: 00123456
text = value.ToString("###"); // Ausgabe: 12346
text = value.ToString("#,#####"); // Ausgabe: 12.346
text = value.ToString("#.##"); // Ausgabe: 12345,68
text = value.ToString("#.#####"); // Ausgabe: 12345,6789
text = value.ToString("000e+000"); // Ausgabe: 123e+002
text = value.ToString("0%"); // Ausgabe: 1234568%

Datums- und Zeitangaben

Wenn Sie wollen, können Sie mit vordefinierten Codes eigene Mustervorgaben zur Darstellung des Datums und der Uhrzeit festlegen. Die Codes werden von der Klasse DateTimeFormatInfo bereitgestellt.

// Ausgabe: Sep.2004.12
string text = DateTime.Now.ToString("MMM/yyyy/dd");
// Ausgabe: 09:22:30
string text = DateTime.Now.ToString("HH:mm:ss");

Tabelle 16.11 Formatzeichen für benutzerdefinierte Datums- und Zeitformate

Formatmuster Beschreibung

d

Monatstag ohne führende 0 (1–31)

dd

Monatstag mit führender 0 (01–31)

ddd

Abkürzung des Wochentags (Mon)

dddd

Vollständiger Name des Wochentags (Montag)

M

Monat ohne führende 0 (1–12)

MM

Monat mit führender 0 (01–12)

MMM

Abkürzung des Monatsnamens (Jan)

MMMM

Vollständiger Monatsname (Januar)

y

Zweistellige Jahreszahl ohne führende 0 (3)

yy

Zweistellige Jahreszahl mit führender 0 (03)

yyyy

Vollständige Jahreszahl (2003)

gg

Angabe der Zeitära

h

Stundenangabe in 12-Stunden-Schreibweise ohne führende 0

hh

Stundenangabe in 12-Stunden-Schreibweise mit führender 0

H

Stundenangabe in 24-Stunden-Schreibweise ohne führende 0

HH

Stundenangabe in 24-Stunden-Schreibweise mit führender 0

m

Minutenangabe ohne führende 0 (0–59)

mm

Minutenangabe mit führender 0 (00–59)

s

Sekundenangabe ohne führende 0 (0–59)

ss

Sekundenangabe mit führender 0 (00–59)

f–ffffff

Angabe von Sekundenbruchteilen

t

Das erste Zeichen des AM/PM-Kennzeichners (A entspricht AM,
P entspricht PM)

tt

AM oder PM

z

Zeitzonenangabe ("+" oder "–", gefolgt von der Stundenangabe; ohne führende 0)

zz

Zeitzonenangabe ("+" oder "–", gefolgt von der Stundenangabe; mit führender 0)

zzz

Vierstellige Zeitzonenangabe

/

Es wird das Standardtrennzeichen für Datumsangaben eingesetzt.

:

Es wird das Standardtrennzeichen für Zeitangaben eingesetzt.



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