C# static

C# static ist ein Keyword, dass du verwenden kannst, um Klassen, Methoden uvm. als statisch zu deklarieren. Statisch bedeutet, dass du diesen Typ nicht instanziieren kannst (kein Objekt davon erstellen). Du kannst also kein Objekt einer statischen Klasse erstellen und auch nicht über ein Objekt auf statische Member (Felder, Eigenschaften, Methoden etc.) zugreifen. Stattdessen greifst du über den Klassennamen auf die Member zu.

Entdecke das Potenzial von C# und werde ein erfahrener Programmierer! Unser exklusiver Video Intensivkurs bietet dir alles, was du brauchst, um C# wie ein Pro zu beherrschen. Lerne von erfahrenen Dozenten, arbeite dich durch interaktive Übungen und Projekte und verbessere deine Fähigkeiten in Rekordzeit. Klick jetzt hier und starte deine Reise zum C#-Experten!

Folgende wichtige Member können als static markiert werden:

Eine Klasse als C# static markieren

Innerhalb einer statischen Klasse kannst du statische Member deklarieren.

Im folgende Beispiel erstellen wir eine statische Klasse, Variable und Methode.

static class MainProgram
{ 
   public static int rebootCounter = 60; 

   public static void Run() 
   { 
      // Code hier
   } 
}

Gehen wir das Ganze nun etwas detaillierter anhand von einem praktischen Beispiel durch:

public static class Database
{
    private static List<int> dbNumbers = new List<int>();

    public static int AddToDb(int numberToSave)
    {
        dbNumbers.Add(numberToSave);
    }

    public static int GetByIndexFromDb(int index)
    {
        return dbNumbers[index];
    }
}

Unsere Klasse Database ist als statisch markiert, daher sind alle Member dieser Klasse ebenfalls statisch. Wenn du nun eine Methode der Database Klasse aufrufen möchtest, dann geht das üben den Klassennamen und dem Methodennamen z. B. Database.AddToDb(10);

class Program
{
    static void Main(string[] args)
    {
        int myNumber = 100;

        // Keine Objektinstanz nötig, Aufruf direkt über Klassenname
        Database.AddToDb(myNumber);
    }
}

Natürlich kannst du auch statische Methoden in einer nicht-statischen Klasse erstellen. Wichtig zu wissen ist aber, dass eine statische Methode keine anderen nicht-statischen Methoden aufrufen kann (statische Methoden können also nur andere statische Methoden aufrufen und auch nur auf statische Member zugreifen):

Statische Felder und Zugriffe

Du kannst einer nicht-statischen Klasse eine oder mehrere statische Methoden und andere nicht-statische Mitglieder hinzufügen. Wenn du deine Klasse also als Objekt instanziieren willst, kannst du bestimmte Member dieser Klasse also trotzdem als static markieren.

Du kannst beispielsweise eine statische Variable (in einer nicht-statischen Klasse erstellen), um eine Variable zu haben, die von allen Instanzen einer Klasse gemeinsam genutzt werden kann:

public class Planet
{
    public static int totalUniverseHumanCount = 0;

    public Planet(){
       totalUniverseHumanCount += 100000; // Statische variable erhöhen
    }  
}

class Universe
{
    static void Main()
    {
        Planet earth = new Planet();
        Planet mars = new Planet();

        Console.WriteLine(Planet.totalUniverseHumanCount ); // 200000
    }
}

Hier kannst du noch mehr über das C# static Keyword erfahren. Unsere Artikel über Interfaces oder Events könnten dich ebenfalls interessieren.

Willst du wissen, wie du einfach und schnell zum C# Profi wirst?
PRogrammieren lernen kann einfach sein!
Overlay Image
Willst du wissen, wie du einfach und schnell zum C# Profi wirst?
PRogrammieren lernen kann einfach sein!
Overlay Image
Setze dein gelerntes Wissen in die Tat um und programmiere echte Anwendungen.
1. Tipp
1/3
Overlay Image
Setze dein gelerntes Wissen in die Tat um und programmiere echte Anwendungen.
1. Tipp
1/3
Overlay Image
Lerne wie du mit Debugging Fehler eines Programmes professionell beheben kannst.
2. Tipp
2/3
Overlay Image
Lerne wie du mit Debugging Fehler eines Programmes professionell beheben kannst.
2. Tipp
2/3
Overlay Image
Fokussiere dich beim lernen auf die richtigen Inhalte und nicht auf die Menge.
3. Tipp
3/3
Overlay Image
Fokussiere dich beim lernen auf die richtigen Inhalte und nicht auf die Menge.
3. Tipp
3/3
Overlay Image
Ja, so einfach kann es sein! Mit meinem C# Video-Intensivkurs wirst du ganz einfach zum echten C# Profi Entwickler. Möchtest du mehr dazu erfahren?
Alles in einem Kurs
Overlay Image
Ja, so einfach kann es sein! Mit meinem C# Intensivkurs für Grundlagen und Expertenwissen wirst du ganz einfach zum echten Profi Entwickler. Möchtest du mehr dazu erfahren?
Alles in einem Kurs
Overlay Image
Diese Seite verwendet Cookies. Wir können diese zur Analyse unserer Besucherdaten platzieren, um unsere Website zu verbessern, personalisierte Inhalte anzuzeigen und Ihnen ein großartiges Website-Erlebnis zu bieten. Für weitere Informationen zu den von uns verwendeten Cookies öffnen Sie die Einstellungen.
Datenschutz
IT Leismann, Inhaber: Jannick Leismann (Firmensitz: Deutschland), verarbeitet zum Betrieb dieser Website personenbezogene Daten nur im technisch unbedingt notwendigen Umfang. Alle Details dazu in der Datenschutzerklärung.
Datenschutz
IT Leismann, Inhaber: Jannick Leismann (Firmensitz: Deutschland), verarbeitet zum Betrieb dieser Website personenbezogene Daten nur im technisch unbedingt notwendigen Umfang. Alle Details dazu in der Datenschutzerklärung.