Metainformationen zur Seite
  •  

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
start:visualstudio2017:programmieren:csharp [2018/10/03 13:44]
wikiadmin [Zugriff auf String]
start:visualstudio2017:programmieren:csharp [2021/12/16 13:30] (aktuell)
wikiadmin [Referenz- oder Value- Typ?]
Zeile 226: Zeile 226:
  
 ---- ----
 +
 +===== Referenz- oder Value- Typ? =====
 +
  
 ====== Klassen und Objekte ====== ====== Klassen und Objekte ======
Zeile 1386: Zeile 1389:
 ==== Zugriff auf String ==== ==== Zugriff auf String ====
 Ein Beispiel: Ein Beispiel:
-<code C# [enable_line_numbers="true",highlight_lines_extra="900"]>+<code C# [enable_line_numbers="true",highlight_lines_extra="13"]>
 using System; using System;
 class TestClass class TestClass
Zeile 1408: Zeile 1411:
 Wir sehen in diesem Beispiel, wie auch Operatoren, hier **+=**, auf Strings angewendet werden können. Wir sehen in diesem Beispiel, wie auch Operatoren, hier **+=**, auf Strings angewendet werden können.
  
-xx + 
-===== Formatierung von Daten =====+---- 
 +{{:start:visualstudio2017:programmieren:csharp:hinweis.png?50 |}}Thema Typensicherheit: string und char können nicht gemischt werden, obwohl es sich bei einem string um eine Aneinanderkettung von chars handelt. 
 +---- 
 + 
 +Strings sind nicht veränderbar (immutable). Das bedeutet, dass bei jeder Stringfunktion ein neues Objekt angelegt wird. Sogar ein Leerstring **""** ist ein eigenes Objekt. Aus gründen der Performance soll deshalb für Leerstrings das vordefinierte Objekt **string.Empty** aus der Klasse string verwendet werden. 
 +Häufig muss geprüft werden, ob ein String null oder leer ist. Dazu stehen die Methoden **IsNullOrEmpty** zu Verfügung: 
 +<code C# [enable_line_numbers="true",highlight_lines_extra="900"]> 
 +if (!string.IsNullOrEmpty(myStr)) 
 +... 
 +</code> 
 +.NET 4 hat eine weitere Methode mit demselben Zweck: 
 +<code C# [enable_line_numbers="true",highlight_lines_extra="900"]> 
 +if (!string.IsNullOrWhitespace(myStr)) 
 +... 
 +</code> 
 + 
 +---- 
 +{{:start:visualstudio2017:programmieren:csharp:uebungen.png?50 |}}Studieren Sie in der Online-Hilfe die Methoden, die string zur Verfügung stellt. 
 +---- 
 + 
 +===== Formatierung von Daten ====
 ==== Standardformate ==== ==== Standardformate ====
 +
 +Datenformatierung haben wir bereits in Codebeispielen angetroffen.
 +Die Angaben, welche Art von Formatierung gewünscht wird, geschied im Platzhalter durch die Angeben eines Formatzeichens und ggf. einer Präzisionsangabe für die Anzahl Stellen, die ausgegeben werden sollen. Beim folgenden Beispiel wollen wir, dass die Zahlen korrekt untereinander stehen:
 +
 +<code C# [enable_line_numbers="true",highlight_lines_extra="13,14"]>
 +// Beispiel Formatierung 1
 +using System;
 +class TestClass
 +{
 +   public static void Main()
 +   {
 +      int a,b
 +      Console.WriteLine("Geben Sie eine Zahl ein: ");
 +      a = Convert.ToInt32(Console.ReadLine());
 +      Console.WriteLine("Geben Sie Zahl 2 ein: ");
 +      b = Convert.ToInt32(Console.ReadLine());
 +      Console.WriteLine("Die Zahlen lauten:");
 +      Console.WriteLine("Zahl 1: {0:D5}", a );
 +      Console.WriteLine("Zahl 2: {0:D5}", b );
 +   }
 +}
 +</code>
 +
 +Bei der Eingabe von 75 u nd 1024 würde die Ausgabe folgendermassen aussehen:
 +
 +<code C# [enable_line_numbers="false",highlight_lines_extra="13,14"]>
 +Die Zahlen lauten:
 +Zahl 1: 00075
 +Zahl 2: 01024
 +</code>
 +
 +Im Falle einer Hexadezimaleausgabe würde die ganze Zahl auch automatisch umgerechnet:
 +
 +<code C# [enable_line_numbers="true",highlight_lines_extra="13,14"]>
 +// Beispiel Formatierung 2
 +using System;
 +class TestClass
 +{
 +   public static void Main()
 +   {
 +      int a,b
 +      Console.WriteLine("Geben Sie eine Zahl ein: ");
 +      a = Convert.ToInt32(Console.ReadLine());
 +      Console.WriteLine("Geben Sie Zahl 2 ein: ");
 +      b = Convert.ToInt32(Console.ReadLine());
 +      Console.WriteLine("Die Zahlen lauten:");
 +      Console.WriteLine("Zahl 1: {0:X4}", a );
 +      Console.WriteLine("Zahl 2: {0:X4}", b );
 +   }
 +   
 +   // Ein weiteres Formatierungsbeispiel:
 +   // {0, 20:5 } 0=Index, 20=Aligment 5=Format
 +   // index -> Dieses Zeichen wird vorangestellt.
 +   // Aligment -> Es werden 20 Stellen dargestellt.
 +   // Format -> 5 Stellen werden dargestelllt mit Index Zeichen voran.
 +}
 +</code>
 +
 +Die Formatierungszeichen und ihre Bedeutung:
 +
 +^Zeichen^Formatierung^
 +|C,c|Hier noch die Bedeutung eintragen.....|
 +
 ==== Selbstdefinierte Formate ==== ==== Selbstdefinierte Formate ====
 ==== Ausrichtung ==== ==== Ausrichtung ====