13
C#-Grundlagen Kompakt 2014 Thomas Meyer eLearning .NET und VBA-Development 21.08.2014 C#-Grundlagen Kompakt beschreibt die grundlegenden syntaktischen Regeln für C# ab Version 4.0 (Visual Studio 2010). Anregungen, Hinweise und Korrektur-Vorschläge nehme ich jederzeit gerne entgegen: [email protected] Version 1.11

C#-Grundlagen Kompakt - · PDF fileC#-Grundlagen Kompakt 2014 Thomas Meyer eLearning .NET und VBA-Development 21.08.2014 C#-Grundlagen Kompakt beschreibt die grundlegenden syntaktischen

  • Upload
    dokhanh

  • View
    222

  • Download
    6

Embed Size (px)

Citation preview

Page 1: C#-Grundlagen Kompakt - · PDF fileC#-Grundlagen Kompakt 2014 Thomas Meyer eLearning .NET und VBA-Development 21.08.2014 C#-Grundlagen Kompakt beschreibt die grundlegenden syntaktischen

C#-Grundlagen Kompakt

2014

Thomas Meyer eLearning .NET und VBA-Development

21.08.2014

C#-Grundlagen Kompakt beschreibt die grundlegenden syntaktischen Regeln für C# ab Version 4.0 (Visual Studio 2010).

Anregungen, Hinweise und Korrektur-Vorschläge nehme ich jederzeit gerne

entgegen: [email protected]

Version 1.11

Page 2: C#-Grundlagen Kompakt - · PDF fileC#-Grundlagen Kompakt 2014 Thomas Meyer eLearning .NET und VBA-Development 21.08.2014 C#-Grundlagen Kompakt beschreibt die grundlegenden syntaktischen

C#-Grundlagen Kompakt Version 1.11

© Thomas Meyer, Celle

Dieses Werk bzw. Inhalt steht unter einer

Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Deutschland Lizenz. (http://creativecommons.org/licenses/by-sa/3.0/de/)

2

C#-Grundlagen Kompakt

Inhalt

Verwendete Stile ___________________________________________________________________ 6

Konventionen _____________________________________________________________________ 7

Bezeichner allgemein ____________________________________________________________________ 7

Events ________________________________________________________________________________ 7

Schnittstellen ___________________________________________________________________________ 7

Einfache Datentypen (Werttypen) _____________________________________________________ 8

Integrierte numerische Typen _____________________________________________________________ 8

Ganzzahlige Typen ________________________________________________________________________________ 8

Gleitkommatypen ________________________________________________________________________________ 8

Integrierter Wahrheitstyp _________________________________________________________________ 8

Integrierter Zeichentyp ___________________________________________________________________ 9

Explizit zu definierende Typen _____________________________________________________________ 9

Komplexe Datentypen (Verweistypen/Referenztypen) ____________________________________ 9

Integrierte Typen _______________________________________________________________________ 9

Explizit zu definierende Typen _____________________________________________________________ 9

Operatoren ______________________________________________________________________ 10

Zuweisungsoperatoren __________________________________________________________________ 10

Arithmetische Zuweisungsoperatoren _______________________________________________________________ 10

Logische Verknüpfungs-Zuweisungsoperatoren _______________________________________________________ 10

Logische Bit-Zuweisungsoperatoren _________________________________________________________________ 10

Arithmetische Operatoren _______________________________________________________________ 10

Unär __________________________________________________________________________________________ 10

Binär __________________________________________________________________________________________ 10

Logische Operatoren ____________________________________________________________________ 11

Relationale Operatoren ___________________________________________________________________________ 11

Verknüpfungs-Operatoren ________________________________________________________________________ 11

Bit-Operatoren__________________________________________________________________________________ 12

Zeichenketten-Operator _________________________________________________________________ 12

Weitere Operatoren ____________________________________________________________________ 13

Operator-Rangfolge ____________________________________________________________________ 13

Page 3: C#-Grundlagen Kompakt - · PDF fileC#-Grundlagen Kompakt 2014 Thomas Meyer eLearning .NET und VBA-Development 21.08.2014 C#-Grundlagen Kompakt beschreibt die grundlegenden syntaktischen

C#-Grundlagen Kompakt Version 1.11

© Thomas Meyer, Celle

Dieses Werk bzw. Inhalt steht unter einer

Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Deutschland Lizenz. (http://creativecommons.org/licenses/by-sa/3.0/de/)

3

Modifizierer ______________________________________________________________________ 14

Zugriffsmodifizierer _____________________________________________________________________ 14

Weitere Modifizierer____________________________________________________________________ 14

Variablen-Deklaration _____________________________________________________________ 15

Variablen-Definitionen _____________________________________________________________ 15

Variablen _____________________________________________________________________________ 15

Arrays________________________________________________________________________________ 15

Eindimensionale Arrays ___________________________________________________________________________ 15

Mehrdimensionale Arrays _________________________________________________________________________ 16

Verzweigte Arrays (jagged arrays) __________________________________________________________________ 16

Deklaration/Definition von Werttypen, die null-Werte zulassen ____________________________ 17

Implizite Typisierung (Typinferenz) ___________________________________________________ 18

Implizite Referenzen _______________________________________________________________ 18

NULL-Objekt __________________________________________________________________________ 18

Instanz-Referenz _______________________________________________________________________ 19

Basisklassen-Referenz ___________________________________________________________________ 20

Explizite Definition von Datentypen __________________________________________________ 21

Enumerationen ________________________________________________________________________ 21

Delegaten ____________________________________________________________________________ 22

Delegattyp-Definition ____________________________________________________________________________ 22

Delegat-Definition _______________________________________________________________________________ 22

Aufruf _________________________________________________________________________________________ 22

Multicast-Delegate _____________________________________________________________________ 23

Delegattyp-Definition ____________________________________________________________________________ 23

Delegat-Definition _______________________________________________________________________________ 23

Aufruf _________________________________________________________________________________________ 23

Strukturen ____________________________________________________________________________ 24

Klassen _______________________________________________________________________________ 25

Schnittstellen __________________________________________________________________________ 26

Explizite Implementierung (Klasse, Struktur) __________________________________________________________ 27

Objektinitialisierer _____________________________________________________________________ 28

Member-Definitionen ______________________________________________________________ 29

Konstanten ___________________________________________________________________________ 29

Typ-Konstante __________________________________________________________________________________ 29

Instanz-Konstante _______________________________________________________________________________ 29

Page 4: C#-Grundlagen Kompakt - · PDF fileC#-Grundlagen Kompakt 2014 Thomas Meyer eLearning .NET und VBA-Development 21.08.2014 C#-Grundlagen Kompakt beschreibt die grundlegenden syntaktischen

C#-Grundlagen Kompakt Version 1.11

© Thomas Meyer, Celle

Dieses Werk bzw. Inhalt steht unter einer

Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Deutschland Lizenz. (http://creativecommons.org/licenses/by-sa/3.0/de/)

4

Felder ________________________________________________________________________________ 30

Eigenschaften (typisch) __________________________________________________________________ 31

Automatisch implementierte Eigenschaft ____________________________________________________________ 32

Konstruktoren _________________________________________________________________________ 33

Konstruktoren in Klassen _________________________________________________________________________ 33

Konstruktoren in Strukturen _______________________________________________________________________ 34

Destruktor ____________________________________________________________________________ 35

Zerstören von Objekten __________________________________________________________________________ 36

using-Anweisung ________________________________________________________________________________ 37

Methoden ____________________________________________________________________________ 38

Methoden ohne Rückgabewert ____________________________________________________________________ 38

Methoden mit Rückgabewert ______________________________________________________________________ 39

Methodenüberladung ____________________________________________________________________________ 39

Erweiterungsmethoden _________________________________________________________________ 40

Indexer (typisch) _______________________________________________________________________ 41

Operatoren (Operatorüberladung) ________________________________________________________ 43

Implizite Konvertierung ___________________________________________________________________________ 44

Explizite Konvertierung ___________________________________________________________________________ 45

Ereignisse _____________________________________________________________________________ 46

Definiton Ereignis-Delegat (typisch) _________________________________________________________________ 46

Abonnieren eines Ereignisses ______________________________________________________________________ 46

Kündigen eines Ereignis-Abonnements ______________________________________________________________ 46

Ereignis-Auslösung (typisch) _______________________________________________________________________ 46

Ereignis-Auslösung als vererbbare Methode (typisch) __________________________________________________ 47

Parameter ____________________________________________________________________________ 48

Obligatorische Parameter _________________________________________________________________________ 48

Optionale Parameter _____________________________________________________________________________ 50

Optionale Parameterliste (Parameterarray) ___________________________________________________________ 50

Typparameter (Generics) ________________________________________________________________ 51

Typparameter in Delegates ________________________________________________________________________ 51

Typparameter in Strukturen _______________________________________________________________________ 51

Typparameter in Klassen __________________________________________________________________________ 52

Typparameter in Schnittstellen _____________________________________________________________________ 52

Typparameter in Methoden _______________________________________________________________________ 53

Einschränkungen (Constraints) _____________________________________________________________________ 54

Anweisungen ____________________________________________________________________ 55

Anweisung ____________________________________________________________________________ 55

Anweisungsblock_______________________________________________________________________ 55

Kommentare _____________________________________________________________________ 56

Page 5: C#-Grundlagen Kompakt - · PDF fileC#-Grundlagen Kompakt 2014 Thomas Meyer eLearning .NET und VBA-Development 21.08.2014 C#-Grundlagen Kompakt beschreibt die grundlegenden syntaktischen

C#-Grundlagen Kompakt Version 1.11

© Thomas Meyer, Celle

Dieses Werk bzw. Inhalt steht unter einer

Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Deutschland Lizenz. (http://creativecommons.org/licenses/by-sa/3.0/de/)

5

Zeilenkommentar ______________________________________________________________________ 56

Blockkommentar _______________________________________________________________________ 56

Dokumentationskommentar _____________________________________________________________ 57

Kontrollstrukturen ________________________________________________________________ 59

goto _________________________________________________________________________________ 59

if ____________________________________________________________________________________ 59

switch _______________________________________________________________________________ 60

Schleifen ________________________________________________________________________ 62

bestimmte Schleifen ____________________________________________________________________ 62

for ____________________________________________________________________________________________ 62

foreach ________________________________________________________________________________________ 63

unbestimmte Schleifen __________________________________________________________________ 64

while __________________________________________________________________________________________ 64

do ____________________________________________________________________________________________ 64

Schleifensteuerung _____________________________________________________________________ 65

Anonyme Methoden _______________________________________________________________ 66

Anonyme Methoden als Delegatparameter _________________________________________________ 66

Lambda-Ausdrücke ________________________________________________________________ 67

Ausdrucks-Lamda _______________________________________________________________________________ 67

Anweisungs-Lambda _____________________________________________________________________________ 67

Projektion ____________________________________________________________________________ 68

Prädikat ______________________________________________________________________________ 68

Zeichenfolgen ____________________________________________________________________ 69

Escape-Sequenzen in Zeichenfolgen _______________________________________________________ 69

wörtliche Zeichenfolge (@)_______________________________________________________________ 69

@Bezeichner ________________________________________________________________________________ 69

@"Zeichenkette" ________________________________________________________________________________ 69

Formatzeichenfolgen ___________________________________________________________________ 70

Standardmäßige Zahlenformatzeichenfolgen _________________________________________________________ 70

Standardmäßige Datum- und Uhrzeitformatzeichenfolgen ______________________________________________ 71

Standardmäßige Enumerationszeichenfolgen _________________________________________________________ 72

Benutzerdefinierte Zahlenformatzeichenfolgen _______________________________________________________ 73

Benutzerdefinierte Datum- und Uhrzeitformatzeichenfolgen ____________________________________________ 75

Kombinierte Formatierung _______________________________________________________________ 77

Darstellung im Dualen Zahlensystem (Binärformat) ___________________________________________ 78

Page 6: C#-Grundlagen Kompakt - · PDF fileC#-Grundlagen Kompakt 2014 Thomas Meyer eLearning .NET und VBA-Development 21.08.2014 C#-Grundlagen Kompakt beschreibt die grundlegenden syntaktischen

C#-Grundlagen Kompakt Version 1.11

© Thomas Meyer, Celle

Dieses Werk bzw. Inhalt steht unter einer

Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Deutschland Lizenz. (http://creativecommons.org/licenses/by-sa/3.0/de/)

6

Glossar __________________________________________________________________________ 83

Index ___________________________________________________________________________ 84

Verwendete Stile normal ................................ Pflichtangabe

Courier ........................... beliebige Bezeichner

kursiv ................................. optionale Angaben, Erweiterungen, Elemente, etc. hellblau ............................... Schlüsselwort

grün ..................................... Datentyp (Klasse, Struktur, Interface, Enumeration, Delegate) Text .................................... Anmerkungen, Hinweise, Erläuterungen

Text .................................... Ausnahmen, Beschränkungen

Page 7: C#-Grundlagen Kompakt - · PDF fileC#-Grundlagen Kompakt 2014 Thomas Meyer eLearning .NET und VBA-Development 21.08.2014 C#-Grundlagen Kompakt beschreibt die grundlegenden syntaktischen

C#-Grundlagen Kompakt Version 1.11

© Thomas Meyer, Celle

Dieses Werk bzw. Inhalt steht unter einer

Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Deutschland Lizenz. (http://creativecommons.org/licenses/by-sa/3.0/de/)

7

Konventionen

Bezeichner allgemein Für Bezeichner sind Buchstaben, Zahlen und Unterstrich erlaubt.

Bezeichner sollten aussagekräftig und selbsterklärend sein ("mnemonic identifier"); Ausnahme: kurzfristige Variablen, z.B. Iterationsvariablen, bestehen i.d.R. nur aus 1-3 Zeichen.

Bei zusammengesetzten Wörtern beginnt jedes neue Wort mit Großbuchstaben ("Höckerschreibweise", z.B. "checkInputBuffer").

Der Unterstrich wird nur bei zusammengesetzten Wörtern verwendet und nur, wenn der gesamte Bezeichner aus Großbuchstaben besteht, z. B. bei Konstanten (Ausnahme: backing fields).

Lokale Bezeichner beginnen mit einem Kleinbuchstaben ("CamelCase" [kurz "für lowerCamelCase"], z.B. Parametervariable "args").

Öffentliche (anwendungsweite) Bezeichner beginnen mit einem Großbuchstaben ("PascalCase" [statt "UpperCamelCase"], z.B. Methodenbezeichner "Main").

Bezeichner dürfen nicht mit einer Zahl beginnen.

Bezeichner dürfen keinem Schlüsselwort entsprechen (Ausnahme: wörtliche Zeichenfolge "@").

Die Ungarische Notation (weder Apps Hungarian [PräfixDatentypBezeichner] noch System Hungarian [DatentypBezeichner]) ist in C# nicht üblich!

bezeichner ........................... private oder lokale Variable oder Member: beginnt mit Kleinbuchstaben Bezeichner ........................... nicht-private Variable, Member oder Typ: beginnt mit Großbuchstaben _Bezeichner ......................... backing field für gleichnamige Eigenschaft: beginnt mit Unterstrich BEZEICHNER ..................... Konstante; besteht aus Großbuchstaben und Unterstrich zur Worttrennung

Events EreignisEventHandler .......... Delegate für Ereignis: Ereignis-Bezeichner mit Suffix "EventHandler" EreignisEventArgs ............... Klasse für Ereignis-Parameter: Ereignis-Bezeichner mit Suffix "EventArgs" OnEreignis ........................... Methode zur Auslösung des Ereignisses: Ereignis-Bezeichner mit Präfix "On" Objekt_Ereignis ................... EventHandler: Ereignis-Bezeichner mit Präfix Objektbezeichner plus Unterstrich

Schnittstellen ISchnittstelle ........................ Schnittstellen-Bezeichner mit Präfix "I"

Page 8: C#-Grundlagen Kompakt - · PDF fileC#-Grundlagen Kompakt 2014 Thomas Meyer eLearning .NET und VBA-Development 21.08.2014 C#-Grundlagen Kompakt beschreibt die grundlegenden syntaktischen

C#-Grundlagen Kompakt Version 1.11

© Thomas Meyer, Celle

Dieses Werk bzw. Inhalt steht unter einer

Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Deutschland Lizenz. (http://creativecommons.org/licenses/by-sa/3.0/de/)

8

Einfache Datentypen (Werttypen) Es ist jeweils die C#-Syntax sowie der zugehörige .NET-Typ angegeben. Beide Versionen können beliebig benutzt werden.

Das Typ-Suffix beschreibt das Literalzeichen, welches hinter dem numerischen Literal angegeben wird, um den Compiler den zu verarbeitenden Datentyp vorzugeben. Standardmäßig werden Zahlenliterale ohne

Dezimalzeichen als int/Int32-Typ und Zahlenliterale mit Dezimalzeichen als double/Double-Typ verarbeitet.

Integrierte numerische Typen

Ganzzahlige Typen

byte / Byte .......................... ganze 8-Bit-Zahl ohne Vorzeichen

Wertebereich: 0…255

short / Int16 ........................ ganze 16-Bit-Zahl mit Vorzeichen Wertebereich: -32.798…32.767

int / Int32 ............................. ganze 32-Bit-Zahl mit Vorzeichen Wertebereich: -2.147.483.648…2.147.483.647

long / Int64 ......................... ganze 64-Bit-Zahl mit Vorzeichen Wertebereich: -9.223.372.036.854.775.808…9.223.372.036.854.775.807; Typ-Suffix: L (l)

Nicht-CLS-konforme ganzzahlige Typen

sbyte / SByte ...................... ganze 8-Bit-Zahl mit Vorzeichen Wertebereich: -128…127

ushort / UInt16 ................... ganze 16-Bit-Zahl ohne Vorzeichen Wertebereich: 0…65.535

uint / UInt32 ........................ ganze 32-Bit-Zahl ohne Vorzeichen

Wertebereich: 0…4.294.967.295; Typ-Suffix: U/u

ulong / UInt64 .................... ganze 64-Bit-Zahl ohne Vorzeichen

Wertebereich: 0…18.446.744.073.709.551.615; Typ-Suffix: UL (ul) Bei integrierten ganzzahligen Typen kann eine Wertzuweisung mit Dezimal-Literalen oder mit Hexadezimal-Literalen erfolgen. Bei Hexadezimalzeichen ist als Präfix 0x voranzustellen (z. B. 0xFF).

Gleitkommatypen

float / Single ....................... 32-Bit-Gleitkommazahl mit 7 Stellen Genauigkeit Wertebereich: ca. ± 1,5e-45…± 3,4e38; Typ-Suffix: F/f

double / Double ................. 64-Bit-Gleitkommazahl mit 15-16 Stellen Genauigkeit

Wertebereich: ca. ± 5,0e-324…± 1,7e308; Typ-Suffix: D/d

Decimal

decimal / Decimal .............. 128-Bit-Gleitkommazahl mit 28-29 signifikanten Stellen

Wertebereich: ca. (-7,9*1028…7,9*1028)/(100…28); Typ-Suffix: M/m

Der Decimal-Typ besteht aus einem 1-Bit-Vorzeichen, einer 96-Bit-Ganzzahl und einem Skalierungsfaktor 10 mit einem Exponenten von 0 bis 28, der für die Ganzzahldivision verwendet wird. Dadurch ergibt sich ein geringerer Wertebereich, aber eine höhere Genauigkeit.

Eine implizite Konvertierung von Gleitkommatypen in Decimal findet nicht statt.

Integrierter Wahrheitstyp bool / Boolean ................... 8-Bit-Wert

Wertebereich: true oder false

Page 9: C#-Grundlagen Kompakt - · PDF fileC#-Grundlagen Kompakt 2014 Thomas Meyer eLearning .NET und VBA-Development 21.08.2014 C#-Grundlagen Kompakt beschreibt die grundlegenden syntaktischen

C#-Grundlagen Kompakt Version 1.11

© Thomas Meyer, Celle

Dieses Werk bzw. Inhalt steht unter einer

Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Deutschland Lizenz. (http://creativecommons.org/licenses/by-sa/3.0/de/)

9

Integrierter Zeichentyp char / Char ......................... 16-Bit-Unicode-Zeichen

Wertebereich: 0x0000…0xFFFF

Auch wenn im char-Typ ein Wert von 0 bis 65535 gespeichert wird, wird bei Ausgabe das entsprechende Unicode-Zeichen ausgegeben.

Für die Zuweisung muss ein Zeichen in Hochkommata angegeben werden oder eine Konvertierung aus einem Zahlen-Literal bzw. -Ausdruck erfolgen.

Explizit zu definierende Typen enum ................................... Gruppierung benannter Konstanten (Enumeratorliste);

Definition siehe weiter unten

struct ................................... Kapselung kleinerer Gruppen zusammengehöriger Variablen; Definition siehe weiter unten

Komplexe Datentypen (Verweistypen/Referenztypen) Es ist jeweils die C#-Syntax sowie der zugehörige .NET-Typ angegeben.

Integrierte Typen string / String ...................... Zeichenkette; Informationen zu Escape-Sequenzen, wörtlichen Zeichenfolgen (@) und Formatzeichenfolgen siehe weiter unten;

Indizierung eines string-Objektes erlaubt Zugriff auf einzelne char.

Für die Zuweisung eines Zeichenketten-Literals ist dieses in Anführungszeichen einzuschließen.

object / Object .................... Basisklasse (Basistyp) aller Typen

dynamic ............................. Verhalten i.d.R. wie object, jedoch werden Typen (erst) zur Laufzeit aufgelöst

Explizit zu definierende Typen class .................................... Definition eigener Objekte oder instanzloser Basisfunktionalitäten;

Definition siehe weiter unten

interface.............................. Definition obligatorischer Klassen- oder Struktur-Member; Definition siehe weiter unten

delegate.............................. Kapselung von Methoden;

Definition siehe weiter unten

Page 10: C#-Grundlagen Kompakt - · PDF fileC#-Grundlagen Kompakt 2014 Thomas Meyer eLearning .NET und VBA-Development 21.08.2014 C#-Grundlagen Kompakt beschreibt die grundlegenden syntaktischen

C#-Grundlagen Kompakt Version 1.11

© Thomas Meyer, Celle

Dieses Werk bzw. Inhalt steht unter einer

Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Deutschland Lizenz. (http://creativecommons.org/licenses/by-sa/3.0/de/)

10

Operatoren

Zuweisungsoperatoren = .......................................... Zuweisung Mehrfachzuweisung bei bereits deklarierten Variablen ist möglich, z.B. x = y = z = 100;

=> ......................................... Lambda-Operator

Arithmetische Zuweisungsoperatoren

+= -= *= /= %=

Logische Verknüpfungs-Zuweisungsoperatoren

&= |= ^=

Logische Bit-Zuweisungsoperatoren

<<= >>=

Arithmetische Operatoren

Unär

+x ......................................... Vorzeichen Plus -x ......................................... Vorzeichen Minus ++x ...................................... Präinkrement (+1); Inkrement erfolgt vor Berechnung der Operation x++ ...................................... Postinkrement (+1); Inkrement erfolgt nach Berechnung der Operation --x ........................................ Prädekrement (-1); Dekrement erfolgt vor Berechnung der Operation x-- ......................................... Postdekrement (-1); Dekrement erfolgt nach Berechnung der Operation

Binär

x + y .................................... Addition x - y ..................................... Subtraktion x * y ..................................... Multiplikation x / y ..................................... Division x % y ................................... Modulo Restwert-Division; ist auch mit Gleitkomma-Zahlen möglich

Page 11: C#-Grundlagen Kompakt - · PDF fileC#-Grundlagen Kompakt 2014 Thomas Meyer eLearning .NET und VBA-Development 21.08.2014 C#-Grundlagen Kompakt beschreibt die grundlegenden syntaktischen

C#-Grundlagen Kompakt Version 1.11

© Thomas Meyer, Celle

Dieses Werk bzw. Inhalt steht unter einer

Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Deutschland Lizenz. (http://creativecommons.org/licenses/by-sa/3.0/de/)

11

Logische Operatoren true ...................................... Rückgabewert: logische Operation ist wahr

false ................................... Rückgabewert: logische Operation ist falsch

Relationale Operatoren

x == y .................................. Gleichwertigkeit (Äquivalenz) x != y ................................... Ungleichheit x < y .................................... Kleiner x > y .................................... Größer x <= y .................................. Kleiner oder gleich x >= y .................................. Größer oder gleich

x is T ................................... Typgleichheit; Ergebnis true, wenn x vom Datentyp T oder abgeleitet ist, sonst false

Verknüpfungs-Operatoren

Unär

!x ......................................... NOT (Negation)

x true false

Ergebnis false true

Binär

x & y .................................... AND (Konjunktion)

x true true false false

y true false true false

Ergebnis true false false false

x && y ................................. Bedingtes AND/short-circuit AND (Auswertung des 2. Operanden nur, wenn 1. Operand true)

x true true false false

y true false ungeprüft ungeprüft

Ergebnis true false false false

x | y ..................................... OR (Disjunktion)

x true true false false

y true false true false

Ergebnis true true true false

x || y .................................... Bedingtes OR/short-circuit OR (Auswertung des 2. Operanden nur, wenn 1. Operand false)

x true true false false

y ungeprüft ungeprüft true false

Ergebnis true true true false

x ^ y .................................... XOR (Antivalenz)

x true true false false

y true false true false

Ergebnis false true true false

Page 12: C#-Grundlagen Kompakt - · PDF fileC#-Grundlagen Kompakt 2014 Thomas Meyer eLearning .NET und VBA-Development 21.08.2014 C#-Grundlagen Kompakt beschreibt die grundlegenden syntaktischen

C#-Grundlagen Kompakt Version 1.11

© Thomas Meyer, Celle

Dieses Werk bzw. Inhalt steht unter einer

Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Deutschland Lizenz. (http://creativecommons.org/licenses/by-sa/3.0/de/)

12

Bit-Operatoren

Unär

~x ........................................ NOT (Negation)

x 1 0 1001

Ergebnis 0 1 0110

Binär

x & y .................................... AND (Konjunktion)

x 1 1 0 0

y 1 0 1 0

Ergebnis 1 0 0 0

x | y ..................................... OR (Disjunktion)

x 1 1 0 0

y 1 0 1 0

Ergebnis 1 1 1 0

x ^ y .................................... XOR (Antivalenz)

x 1 1 0 0

y 1 0 1 0

Ergebnis 0 1 1 0

x << y .................................. Linksverschiebung

x 1001 9

y 2

Ergebnis 0100 4

x >> y .................................. Rechtsverschiebung

x 1001 9

y 2

Ergebnis 0001 1

Zeichenketten-Operator x + y .................................... Verbindet zwei Zeichenketten miteinander (Konkatenation); alle Operanden

werden implizit in eine Zeichenkette konvertiert

x "Hallo" "Hallo"

y "Welt" 10

z 20

Ergebnis x+y "HalloWelt" Hallo10

Ergebnis x+y+z Hallo1020

Ergebnis x+(y+z) Hallo30

Page 13: C#-Grundlagen Kompakt - · PDF fileC#-Grundlagen Kompakt 2014 Thomas Meyer eLearning .NET und VBA-Development 21.08.2014 C#-Grundlagen Kompakt beschreibt die grundlegenden syntaktischen

C#-Grundlagen Kompakt Version 1.11

© Thomas Meyer, Celle

Dieses Werk bzw. Inhalt steht unter einer

Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Deutschland Lizenz. (http://creativecommons.org/licenses/by-sa/3.0/de/)

13

Weitere Operatoren x.y ...................................... Memberzugriff (Punktoperator) () .......................................... Präferenzierung x() ......................................... Methodenaufruf, Delegataufruf

(T)x ...................................... Typkonvertierung ohne Überlaufprüfung [] ........................................... Collection-Index, Indexeraufruf, Attribute, Aufhebung Zeiger-Indizierung (nur in

unsafe-Code)

new...................................... Objekt-Instanziierung

typeof(T) ............................. Erstellen eines Type-Objektes aus einem Datentyp

sizeof(T) .............................. Ermitteln der von einem Datentyp verwendeten Anzahl Bytes; in safe-Code nur für integrierte Typen und Enumerationen zulässig

checked(), checked{} ........ Aktivieren der Überlaufprüfung bei Verwendung der Typkonvertierung mit dem Typkonvertierungsoperator entweder für einen Argument-Ausdruck oder für alle Ausdrücke innerhalb des checked-Anweisungsblocks

unchecked(), unchecked{} Deaktivieren der Überlaufprüfung bei Verwendung der Typkonvertierung mit dem Typkonvertierungsoperator entweder für einen Argument-Ausdruck oder für alle Ausdrücke innerhalb des unchecked-Anweisungsblocks

default(T) ............................ Rückgabe des Standardwertes des Datentyps T

delegate() { } ....................... Definition einer anonymen Methode, z. B. als Delegat-Parameter

x ?? y .................................. NULL-Sammeloperator (null coalesce); Ergebnis 1. Operand (x), wenn nicht null, sonst 2. Operand (y)

x ? y : z ............................... Bedingter Operator (conditional operator) Ergebnis 2. Operand (y), wenn 1. Operand (x) true, sonst 3. Operand (y)

x as T ................................. Typkonvertierung zwischen Referenztypen;

Ergebnis x als Datentyp T, wenn konvertierbar, sonst null &x ........................................ Ermitteln der Adresse des Operanden (AddressOf); nur in unsafe-Code zulässig -> ........................................ kombiniert Zeigerdereferenzierung und Memberzugriff; nur in unsafe-Code

zulässig

Operator-Rangfolge

. () [] x++ x-- new typeof(T) checked unchecked default() delegate ->

+x -x ! ~ ++x --x (T)x true false &x sizeof(T)

* / %

+ -

<< >>

< > <= >= is as

== !=

&

^

|

&&

||

??

?:

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