Einleitung
C# ist eine rein objektorientierte Sprache. D.h., dass alle Datentypen auf Klassen basieren und all Anweisungen in Klassen erfolgen.
Es werden alle zentralen Konzepte der objektorientierten Programmierung unterstützt:
- Schnittstellen
- Vererbung
- Polymorphismus
Namenskonventionen
C# unterscheidet auch zwischen Groß- und Kleinschreibung. Das bedeutet, dass a
und A
zwei unterschiedliche Variablennamen sind.
Schlüsselwörter
Um bei der Benennung von Bezeichnern nicht in Konflikt mit den Schlüsselwörtern der Sprache zu geraten, ist es sinnvoll. diese zu kennen. Eine Liste der Schlüsselwörter findet sich hier
Verpflichtende Regeln
- Der Name darf nur Buchstaben, Zahlen und den Unterstrich enthalten
- Der Name muss mit einem Buchstaben beginnen
- Groß-Kleinschreibung ist relevant
- Es dürfen keine Schlüsselwörter verwendet werden
Optionale Regeln
- PacalCasing nutzen. Bsp.:
KundenCenterNutzer
- Abkürzungen, die nur aus zwei Buchstaben bestehen dürfen komplett groß geschrieben werden. Bsp.:
IO
- CamelCasing bei lokalen Variablen, versteckten Attributen und Paramternamen. Bsp.:
kundenCenterNutzer
Weitere Regeln finden sich hier
Zugriffsmodifizierer
Über die sogenannten Zugriffsmodifizierer (Access Modifier) kann man steuern, wie und von wo aus auf eine Eigenschaft oder Methode in einer Klasse zugegriffen werden kann.
public
Auf den Typ oder Member kann von jedem Code in der gleichen Assembly oder einer anderen Assembly, die darauf verweist, zugegriffen werden.
protected
Nur von der definierenden Klasse und von der abgeleiteten Klasse ansprechbar
internal
Nur von dem Programm ansprechbar, in dem die Methode/Eigenschaft deklariert wurde
protected internal
Auf den Typ oder Member kann von beliebigem Code in der Assembly, in der er deklariert ist, oder von jeder abgeleiteten Klasse in einer anderen Assembly zugegriffen werden.
private protected
Auf den Typ oder Member kann nur innerhalb der deklarierenden Assembly, von Code in derselben Klasse oder in einem Typ zugegriffen werden, der von dieser Klasse abgeleitet ist.
private
Auf den Typ oder Member kann nur von Code in der gleichen Klasse oder Struktur zugegriffen werden