EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C#...

48
Eine Einführung in die .NET Grundlagen und C# Vaios Lois - .NET Grundlagen Aikaterini Vassiliou - C#

Transcript of EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C#...

Page 1: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

Eine Einführung in die .NET Grundlagen und C#

Vaios Lois - .NET GrundlagenAikaterini Vassiliou - C#

Page 2: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

Überblick

Einführung .NET Grundlagen

1. Was ist .NET?2. Plattformen3. Geschichte und Versionen4. Installation5. Zwischensprache6. Laufzeitumgebung7. Programmiersprachen8. Objektorientierung9. .NET-Klassenbibliothek (FCL)10. Softwarekomponentenkonzept

Page 3: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

1.Was ist .NET?

Definition:

• .NET ist eine betriebssystemunabhängige Softwareentwicklungsplattform der Firma Microsoft

Ziele von .NET:

• Primäres Ziel: Eine Plattform für die Entwicklung von Software jederArt

• Unterschiede zwischen verschiedenen Programmiersprachen in derAnwendungsentwicklung zu beseitigen.

Page 4: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

1.Was ist .NET?

Technische Merkmale des .NET Frameworks

• Parallelbetrieb verschiedener .NET Framework-Versionen

• Durchgängige Objektorientierung

• wiederverwendbare Softwarekomponenten

• Plattformunabhängigkeit durch Zwischensprache mit Just-in-Time Compiler

• umfangreiche Klassenbibliothek mit mehr als 9.000 Klassen, einheitlichfür alle .NET-fähigen Programmiersprachen

• XML-basierte Konfiguration von Anwendungen

Page 5: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

2.Plattformen

.NET auch auf anderen Betriebssystemen außer Windows?JA. Dank der Firma Novell.

Novell Mono

• Open Source Projekt wurde im Jahre 2001 von Miguel de Icaza ins Leben gerufen.

• Ernst zu nehmende .NET Implementierung für Unix, Linux und Mac OS.

• Novell liefert derzeit vorgefertigte Mono-Distributionenfür Suse-Linux, Redhat-Linux, Fedora-Linux, Novell-Linux.

Page 6: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

3.Geschichte und Versionen

• Das .NET Framework ist entstanden aus Bemühungen von Microsoft,eine einheitliche Laufzeitumgebung für das Component Object Model(COM) zuentwickeln.

.NET-Version Erscheinungstermin Zugehörige Visual Studio-Version

1.0 5.1.2002 Visual Studio .NET 2002

1.1 1.4.2003 Visual Studio .NET 2003

2.0 7.11.2005 Visual Studio 2005/2008

3.0 19.11.2006 Visual Studio 2005/2008

3.5 19.11.2007 Visual Studio 2008

Page 7: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

4.Installation

Was benötige ich?

• .NET Framework Redistributable 3.5• Windows Software Development Kit (WinSDK)• .NET Framework Software Development Kit (.NET SDK)• Visual Studio 2008

Allgemein gilt:

• Ist das .NET nicht schon aktuell auf dem Betriebssystemvorhanden, kann man sich die aktuelle Version von derMicrosoft Homepage runterladen.

Page 8: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

5.Zwischensprache

Page 9: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

5.Zwischensprache

.method public static void main() cil managed{

.entrypoint

.custom instancevoid[mscorlib]System.STAThreadAttribute::.ctor()=(01 00 00 00)//Code size 11(0xb).maxstack 8IL_0000: ldstr „Hello World aus der Anwendung 1!“IL_0005: call void [mscorlib]System.Console::WriteLine(string)IL_000a:ret

}//end of method Anwendung1::main

Page 10: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

6.Laufzeitumgebung

• Die Laufzeitumgebung, Common Language Runtime(CLR) beinhaltetneben den Just - in -Time-Compiler noch folgendes:

• Eine automatische Speicherverwaltung durch einen Garbage Collector

• Ein System für eine Ausnahmebehandlung (Exception Handling)

• Ein Sicherheitssystem, das die Anwender vor bösartigen Code schützen kann,

• Die Kompatibilität mit Nicht-.NET-Anwendungen

Page 11: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

6.Laufzeitumgebung

Page 12: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

7.Programmiersprachen

• Insgesamt existieren mittlerweile über 40 verschiedene Programmiersprachen

Sprachen von Microsoft :

• Visual Basic (Visual Basic .NET)

• C# (CSharp)

• J#(JSharp, ein Java-Derivat)

• JScript .NET (Ein Derivat von Javascript)

• C++/CLI

• IronPython

Page 13: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

8.Objektorientierung

• Das .NET Framework besteht nur aus Objekten. Auch elementare Werte wie Zahlen sind Objekte.

• .NET unterstützt Einfachvererbung. Bei keiner definierten Vererbung wird von der Klasse System.Object abgeleitet.

• Schnittstellen können nur im Rahmen einer Klasse definiert werden. Mehrfachvererbung bei Schnittstellen möglich

• Verwendung von Generischen Klassen

• Partielle Klassen

Page 14: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

8.Objektorientierung• Aus Leistungsgründen gibt es intern dennoch eine unterschiedliche Behandlungvon Referenztypen und Wertetypen.

• Delegaten sind typsichere Zeiger auf Funktionen.

Page 15: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

8.Objektorientierung

• Wertetypen erben von System.ValueType

Page 16: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

2246 2303

5684

87149326

0100020003000400050006000700080009000

10000

NET 1.0 NET 1.1 NET 2.0 NET 3.0 NET 3.5

NET 1.0 NET 1.1 NET 2.0 NET 3.0 NET 3.5

9..NET Klassenbibliothek (FCL)

• Die .NET-Klassenbibliothek kann von allen .NET-Sprachen genutzt werden.

• Die FCL Klassen sind in 312 Namensräume eingeteilt.

Page 17: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

10.Softwarekomponentenkonzept

• DLLs und EXEs heißen im .NET Framework Assemblies.

• Eine wiederverwendbare Softwarekomponente ist sowohl ein EXE- als auch eine DLL-Assembly.

• Ein EXE Assembly ist eine startbare Anwendung.

• Ein DLL Assembly kann nicht einzel gestartet werden. Ihr Zweck ist die Verwendung im Rahmen einer anderen Anwendung.

Page 18: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

10.Softwarekomponentenkonzept

Ein-Datei-Assembly Mehr-Dateien-Assembly

Page 19: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

Überblick1. Was ist C#(C Sharp)2. Hello World 3. Datentypen4. Typkonvertierung5. Wertelose Wertetypen6. Operatoren/Operatorüberladung7. Klassen8. Felder9. Eigenschaften (Property-Attribute)10. Methoden11. Konstruktoren und Destruktoren12. Schnittstellen (Interfaces)13. Namensräume (Namespaces)14. Schleifen15. Verzweigungen16. Funktionszeiger(Delegates)17. Fehlerbehandlung18. Kommentare19. Arrays/Indexer

Page 20: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

Was ist C#

Programmiersprache, die mit .Net Framework neu entwickelt wurde

Konzeptionell wurde C# vor allem von C++ und Java beeinflusst

C# ist eine rein objektorientierte Sprache

C# ist das Ergebnis eines Projekts bei Microsoft

Ursprünglich sollte die Sprache "Cool" heißen

Aktuelle Version: C#3.0

Page 21: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

using System; namespace HelloWorld {

class Hello {

static void Main(){

Console.WriteLine("Hello World!"); }

} }

Hello World in C#

Page 22: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

Datentypen in C#

C# Art

byte Ganzzahl 1 Byte

bool Ganzzahl Boolean

short Ganzzahl 2 Bytes

int Ganzzahl 4 Bytes

long Ganzzahl 8 Bytes

float Ganzzahl 4 Bytes

double Ganzzahl 8 Bytes

decimal Zahl 12 Bytes

char Zeichen 1 Byte oder 2 Bytes

string Zeichenkette

dateTime Datum/Uhrzeit

Page 23: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

Typkonvertierung in C#

Typkonvertierung bezeichnet die Umwandlung von einem Datentypin einen anderen, z.B. Umwandeln einer Zahl in eine Zeichenkette

Typkonvertierung sind in der .NET-Klassenbibliothek hinterlegt,insbesondere in der Klasse System.Convert

string text1 = zahl.ToString();string text2 = Convert.ToString(zahl);

Die Konvertierung von Zahl zu Text ist nur möglich über die ToString()-Methode oder über die Klasse System.Convert

Page 24: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

Wertelose Wertetypen in C# C# unterstützt Nullable Value Types bereits seit Version 2005

Ab .NET 2.0 existiert ein Hilfskonstrukt um auch Wertetypenden Wert null zuweisen zu können

In .NET ist ein auf null setzbarer Wertetyp eine generischeStruktur(System.Nullable)

Besteht aus dem Wert(value) und einem Hilfs-Flag HasValue(boolean)

int a = 1;int ? b =2;

b=null a=null

Page 25: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

Operatoren in C#

+, -, * , / , % , ~ ,++ , --, n/a , / Mathematik

= , +=, -=, *=, /=, %= /=, <<=, >>=, &= ,^=, |=

Zuweisung

<, <= , > ,>= , = ,!= , == , != , + , ==

Vergleich

&&, | | , ! , & , ^ , | , << , >> Logische OperatorenBit-Operatoren

Page 26: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

Operatoren überladen

C#-Operator Bedeutung

+, -, !, ~, ++, --, true, false Unäre Operatoren

+, -, *, /, %, &, |, ^, <<, >> Binäre Operatoren

==, !=, <, >, <=, >= Relationale Operatoren

Operatoren, die überladen werden können

Operatoren, die nicht überladen werden können−Spezielle Operatoren

• sizeof• new• is• typeof

Page 27: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

Klassen in C# Enthalten

Felder, Methoden, Properties, Delegaten, Indexer

private Mitglied kann nur innerhalb der Klasse genutztwerden

protected Mitglied kann innerhalb der Klasse und inabgeleiteten Klassen genutzt werden

internal Mitglied kann in allen Klassen innerhalb derAssembly genutzt werden

public Mitglied kann in allen Klassen auch inreferenzierenden Assemblies genutzt werden

Klassen können abstract oder sealed sein

Erlauben Einfachvererbung

Können von beliebig vielen Interfaces erben

Page 28: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

Klassendefinition in C# Klassen werden in C# durch das Schlüsselwort class gebildet

public class Person{

public string name;

public Person() {

name = "unknown"; } public void SetName(string newName) {

name = newName; }

} Person person1 = new Person(); System. Console.WriteLine(person1.name);

Page 29: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

Felder in C#

Attribute werden in C# als Felder oder eng.(Fields) bezeichnet

Felder ohne Codehinterlegung werden durch einfache variablen

deklariert

Felder ermöglichen Klassen und Strukturen das Kapseln von Daten

Felder können public, private, internal oder protected sein

[Sichtbarkeitsmodifizierer] <Typ> <Variable>;

public string PersonalausweisNr;

Page 30: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

Property-Attribute in C#

Komposition aus Feldern und Methoden

Tut nichts anderes als private Feld Attribut zu lesen und zu beschreiben

private long flugstunden;

public long Flugstunden{

get { return flungstungen;}set { flungstunden=value;}

}

Page 31: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

Methoden in C#

Methoden werden innerhalb einer Klasse deklariert , indem die Zugriffsebene, der Rückgabewert, der Name der Methode und die Methodenparameter angegeben werden

Variable Parameterlisten können mit dem Schlüsselwort params erzeugt werden

Überschreiben−Deklaration als virtual in der Basisklasse−Deklaration als override in der abgeleiteten Klasse

[Sichtbarkeitsmodifizierer] <Typ> <Methodenname>( [ <Typ> <Variable>, …] )

Page 32: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

Methodenparameter in C#

Für die Übergaberichtung gibt es in C# für den Call by Value keineSchlüsselwort und für den Call by Reference-Fall zwei Wörter

Der Zusatz ref vor einem Parameter bedeutet, dass der Wert von außenhereingegeben wird und innerhalb der Methode verändert werden darf

Der Zusatz out vor einen Parameter bedeutet, dass der Aufrufer nichtinitialisierten Speicherplatz hereingibt. Der Wert muss zwangsläufigvon der Methode selbst gesetzt werden und wird dann dem Aufrufergeliefert

Page 33: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

class OutExample{

static void Method(out int i){

i = 44;}static void Main(){

int value;Method(out value);

}}

class RefExample{

static void Method(ref int i){

i = 44;}

static void Main(){

int value=0;Method(ref value);

}}

Methodenparameter in C#

Page 34: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

Konstruktoren und Destruktoren

Ein Konstruktor ist eine Methode, die beim Instanziieren aufgerufen wird

Konstruktoren besteht aus ~ gefolgt von Klassennamen und haben keinenRückgabetyp

Echte Destruktoren, die beim Löschen eines Objektes aufgerufen werden,kennt das .NET Framework hingegen nicht

Der Aufruf des Destruktors ist im .NET Framework nicht deterministisch

Man spricht oft von Finalizern statt von Destruktoren

Page 35: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

Vererbung in C#

C# unterstützt die Einfachvererbung, nicht aber die Mehrfachvererbung

Die Implementierungsvererbung wird angezeigt durch ein Doppelpunkt nach dem Klassennamen

Der Doppelpunkt dient auch der Anzeige von Schnittstellenvererbung

Nach dem Doppelpunkt kann auf this (aktuelle Klasse) und base (Basisklasse) Bezug genommen werden

Page 36: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

Vererbung in C#

public class Fahrzeug{string farbe;public Fahrzeug(string farbe){

this.farbe=farbe;}

}

public class Auto : Fahrzeug {string marke;public Auto(string farbe, string marke) : base(farbe) {

this.marke=marke;}

}

Page 37: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

Schleifen in C#

C# unterscheidet die Schleifentypen

Bedingte Schleifen Zählschleife Mengenschleife

// Syntax: foreach-Schleife

foreach(Datentyp Bezeichner in Array-Bezeichner) { …}

int[] intArr = {2,4,6,8};foreach(int tempElement in intArr){

Console.WriteLine(tempElement);}

Page 38: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

Verzweigungen in C#

if-Anweisung switch-Anweisung

Die if-Anweisung in C# erfordert, dass die Bedingung innerhalb der if-Anweisung für einen Ausdruck vom Typ bool ausgewertet wird

C# ermöglicht des Weiteren die Verwendung der switch-Anweisung mit Zeichenfolgenvariablen:

switch (htmlTag) { case "P":

Console.WriteLine("Paragraph start"); break;

}

Page 39: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

Schnittstellen in C# Eine Klasse kann optional eine oder mehrere Schnittstellen

implementieren

Eine Schnittstelle kann auch von mehreren anderen Schnittstellen erben

Schnittstellen werden mit dem Schlüsselwort interface erzeugt. Bennenung meist beginnend mit I

interface IPilot{

int FlugZuweisen(int Flug);}

public class Pilot : IPilotpublic int FlugZuweisen(int Flug) {

return 0;}

Page 40: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

Namespaces in C#

Deklaration eines Namensraum dient dazu, eine Klasse einen Namensraumzuzuordnen

Deklaration erfolgt durch das Konstrukt namespace

Importieren von Namensräumen hat das Ziel, einen Klassennamen mitverkürztem oder ganz ohne Namensraum zu verwenden

Importieren von Namensräumen erfolgt mit dem Schlüsselwort using

using <Namespace>;

namespace <Klassenname>{}

Page 41: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

Delegates in C#

Delegaten sind typsichere Zeiger auf Funktionen

Entsprechen den Funktionszeiger aus der Sprache C++

Ein Delegat kann auf mehrere Funktionen zeigen

Funktion Syntax

Deklaration eines Funktionszeigertyps public delegate voidDel(string message)

Methodendeklaration public void DelegateMethod(string message)

Erstellung eines Zeigers auf die Funktion

Del handler = DelegateMethod

Aufruf des Delegates handler(„Hello Word“)

Page 42: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

Fehlerbehandlung in C#

C # unterstützt das Konstrukt try catch finally um Laufzeitfehler abzufangen

Ein catch (Exception ex) fängt alle Fehler ab, weil System. Exception die Oberklasse aller Ausnahmen ist

Der finally-Block gibt alle Ressourcen frei, die im try-Block reserviert wurden, und führt den Code aus, der trotz Eintreten einer Ausnahme ausgeführt werden soll

Page 43: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

try{}catch (FirstException e){ }catch(SecondException e){}finally{}

Fehlerbehandlung in C#

Page 44: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

Kommentare in C#

C # unterstützt drei Arten von Kommentaren

Zeilenkommentare, bei denen jede Zeile mit einem // eingeleitet wird

Blockkommentare, bei denen der Codeblock in /*….*/ eingerahmt wird

XML-Kommentare, bei denen jede Zeile mit /// beginnt

Page 45: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

Arrays in C#

Ein Array kann eindimensional, zweidimensional oder verzweigt sein

Der Index eines Arrays mit n Elementen beginnt bei 0 und endet bei n-1

Arraytypen sind Verweistypen und Instanzen der Klasse System. Array

Sind dynamisch bezüglich der Größe

Die Anzahl der Dimension muss bei der Deklaration festgelegt werden

int[] array1 = new int[3];int[] array2 = new int[3] { 1, 3, 5}; array1[0]=20;int[,] array = new int[4, 2]; int[][] myArray=new int[4][];

Page 46: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

Indexer in C# Ermöglichen das Indizieren von Instanzen einer Klasse oder Struktur

auf dieselbe Weise wie Arrays , sind mit Eigenschaften vergleichbar

Um einen Indexer für eine Klasse oder eine Struktur zu deklarieren, verwenden man das this Schlüsselwort

public int this[int index] // Deklaration

get{

return arr[index];}set{

arr[index] = value;}

Page 47: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

public class Person{

Fragen ?

Page 48: EineEinführung in die .NET Grundlagen und C#weber/sysprog/proj09/dotnet.pdf · Was ist C# Programmiersprache, die mit .Net Framework neu entwickelt wurde Konzeptionell wurde C# vor

Vielen Dank !