Static

Adam Boduch

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ż:

0 komentarzy