Wiemy już czym są klasy. I jak je tworzyć. W tym wpisie zajmiemy się klasami statycznymi. Mogą w nich znajdować się tylko elementy statyczne. Nie możemy stworzyć obiektu tej klasy. Aby stworzyć klasę statyczną używamy słowa kluczowego static.
Zobaczmy przykład prostej klasy statycznej:

   public static class Operacje {

        public static double Pi = 3.141592653589793;

        public static double DodajDwieLiczby(double LiczbaPierwsza, double LiczbaDruga) {
            return LiczbaPierwsza + LiczbaDruga;
        }

        public static double OdejmijDwieLiczby(double LiczbaPierwsza, double LiczbaDruga)
        {
            return LiczbaPierwsza - LiczbaDruga;
        }

        public static double PomnozDwieLiczby(double LiczbaPierwsza, double LiczbaDruga)
        {
            return LiczbaPierwsza * LiczbaDruga;
        }
}

Zazwyczaj tworzymy klasę statyczną gdy chcemy mieć zbiór pewnych powiązanych ze sobą metod lub stałych wartości słownikowych.
Ale nie chcemy stwarzać obiektu tej klasy. Ponieważ wszystkie działały by w ten sam sposób a zajmowały by dodatkową pamięć. Dodając słowo kluczowe static przed słowem class pozbywamy się tego problemu.

Gdy chcemy dodać nie statyczną metodę do statycznej klasy zobaczymy błąd:

   public static class Operacje {

        public static double Pi = 3.141592653589793;

        public static double DodajDwieLiczby(double LiczbaPierwsza, double LiczbaDruga) {
            return LiczbaPierwsza + LiczbaDruga;
        }
        public static double OdejmijDwieLiczby(double LiczbaPierwsza, double LiczbaDruga)
        {
            return LiczbaPierwsza - LiczbaDruga;
        }
        public static double PomnozDwieLiczby(double LiczbaPierwsza, double LiczbaDruga)
        {
            return LiczbaPierwsza * LiczbaDruga;
        }

        public void Test() {

        } 

    }

stat1
Rys. Błąd zgłoszony przez kompilator

Gdy będziemy próbować utworzyć obiekt klasy statycznej kompilator zgłosi błąd. Zobaczmy przykład:

class Program{
        static void Main(){
            Operacje test = new Operacje();

        }
}

stat2

Rys. Błąd zgłoszony przez kompilator.

Aby użyć klasy statycznej piszemy jej nazwę a następnie używamy kropki i wpisujemy lub za pomocą intellisense Visual Studio wybieramy interesującą nas metodę.
Zobaczmy przykład:

stat3

Rys. intellisense Visual Studio dla naszej statycznej klasy

Przykład użycia klasy statycznej:

 class Program{
        static void Main(){

            Console.WriteLine("15+15={0}", Operacje.DodajDwieLiczby(15, 15));
            Console.WriteLine("30-1={0}", Operacje.OdejmijDwieLiczby(30, 1));
            Console.WriteLine("3*Pi={0}", Operacje.PomnozDwieLiczby(3, Operacje.Pi));
            Console.ReadLine();
        }
}

stat4

Rys. Rezultat działania aplikacji.

Podsumowanie:

Przypomnę jeszcze raz najważniejsze informacje. Klasa statyczna może zawierać tylko elementy statyczne. Nie możemy stworzyć jej obiektu.
Aby ją zadeklarować używamy słowa kluczowego static przed słowem class.
Używamy ją w następujący sposób: NazwaKlasy.OperacjaLubStała.