Programowanie w języku C#

Static

static - słowo kluczowe języka C#

Metoda klasy opatrzona słowem kluczowym static będzie traktowana jako statyczna. Odwołanie do metod statycznych nie wymaga tworzenia instancji (obiektu) klasy. W takim przypadku, pamięć potrzebna na wykonanie danej metody jest rezerwowana w momencie pierwszego użycia ów metody w klasie.

Oto przykład:

class Foo
{
    static public void Bar()
    {
        Console.WriteLine("Hello World!");
    }
}
 
class Program
{
    static void Main(string[] args)
    {
        Foo.Bar();
    }
}


Nic nie stoi na przeszkodzie, aby w klasie umieszczać metody zwykłe oraz metody statyczne. To, że w klasie znajdują się metody statyczne, nie oznacza również, że nie można utworzyć obiektu danej klasy. Należy jednak pamiętać, że z poziomu obiektu klasy nie można wywoływać metod statycznych:

Foo MyFoo = new Foo();
MyFoo.Bar(); // <-- błąd


  • W metodach statycznych nie można korzystać ze słowa kluczowego this
  • Metody statyczne nie mogą być wirtualne
  • Metody statyczne nie mogą być przedefiniowywane

Słowem kluczowym static mogą być opatrzone również całe klasy:

static class Foo { } 


Klasy statyczne mogą posiadać jedynie statyczne elementy. Nie istnieje możliwość utworzenia instancji takiej klasy.

Klasy statyczne nie mogą być klasami bazowymi.

Klasy statyczne mogą posiadać konstruktor. Jego kod zostanie wykonany w momencie pierwszego użycia któregoś z elementów klasy:

static class Foo
{
    static public void Bar()
    {
        Console.WriteLine("Hello World!");
    }
 
    static Foo()
    {
        Console.WriteLine("Jestem konstruktorem!");
    }
}
 
 
class Program
{
    static void Main(string[] args)
    {
        Foo.Bar();
        Console.Read();
    }
}


Rezultat takiego kodu:

Jestem konstruktorem!
Hello World!


Zobacz też: