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