none
(C#) Kann mir jemand die statischen Eigenschaften erklären? RRS feed

Antworten

  • Hallo,
    in C# unterscheidet man fast überall zwischen Statischen- und Instanz Membern. Das betrifft zum einen Eigenschaften, aber auch Felder, Methoden und ggf. Klassen.

    Wärend du bei einer normalen Eigenschaften einen Wert pro Klasseninstanz hast, hast du bei statischen Eigenschaften immer nur einen Wert in der gesamten Anwendung. Nehmen wir mal als Beispiel mal die Klasse Auto:

    public class Auto{
      public string Name{get;set;}
    }
    Hier kannst du viele verschiedene Instanzen erzeugen und jede hat ihren Eigenen Wert für die Name-Eigenschaft:
    var auto1=new Auto();
    auto1.Name="Audi";
    var auto2=new Auto();
    auto1.Name="BMW";
    Wenn du dagegen eine statische Eigenschaft hast, dann hat diese überall den selben Wert:
    public class Test{
      public static int StaticValue{get;set;}
    }
    
    //Zuweisung erfolgt ohne Instanz von Test
    Test.StaticValue = 12;
    
    //Abfrage erfolgt ebenfalls ohne Klasseninstanz
    var val = Test.StaticValue;
    Das spielt vor allem in der GUI-Programmierung mit XAML eine wichtige Rolle, aber auch für Konstanten die sich wärend der Ausführung vom Programm nicht ändern. Da wären beispielsweise Math.PI, Math.E und auch Environment.OSVersion.

    Statische Methoden verhalten sich wie die Eigenschaften. Sie können nicht auf eine spezifische Instanz Variable zugreifen, sondern nur auf Statische Eigenschaften und Felder. Wenn eine Klasse nur statische Member enthält, dann kann man diese ebenfalls als static markieren um so keine Instanz mehr erzeugen zu können (Beispielsweise die Math-Klasse).


    Tom Lambert - C# MVP
    Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
    Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
    Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets

    Sonntag, 7. Dezember 2014 13:33
    Moderator