Grundkonzepte von C#

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