Luokan jäsenet (jäsenmuuttujat, metodit, tapahtumat, indeksoijat, konstruktorit,...) voivat olla joko instanssin jäseniä (instance members) tai staattisia jäseniä (static members). Olio-ohjelmoinnissa tavallisesti luodaan instansseja eli olioita luokista. Tietyissä tilanteissa on kuitenkin perusteltua käyttää luokkien metodeja ja ominaisuuksia staattisina (static), eli suoraan ilman että luokasta luodaan oliota. Huom! Koska C#:ssa EI ole globaaleja metodeja tai vakioita, on tilanteita joissa tarvitaan yhteisiä ja julkisia metodeja, muuttujia ja vakioita.
Luokka voidaan määritellä staattiseksi. Staattinen luokka on periaatteessa samanlainen kuin ei-staattinen luokka, mutta yhdellä merkittävällä erolla: siitä EI voi tehdä instansseja. Toisin sanoen et voi käyttää new avainsanaa luomaan oliomuuttujan luokasta. Koska staattisesti luokasta ei ole instanssia eli oliomuuttujaa, käytetään luokkaa viittaamalla suoraan luokan nimeen.
static class MyMath
{
public int Power2(int nro)
{
return nro * nro;
}
}
Staattista luokkaa ja sen metodia Power2 käytetään seuraavasti
class TestMath
{
static void Main(string[] args)
{
int num = 12;
int num2 = MyMath.Power2(num);
Console.WriteLine(num2);
}
}
Luokka voidaan määritellä staattiseksi ja luokan jäseniä voidaan määritellä staattiseksi.
using System;
namespace JAMK.IT
{
public class Cat
{
//member can be accessed only via the constuctor
private static int instances = 0;
public Cat()
{
//every time when an instance has been called we will increase the counter
instances++;
}
public static void HowManyCats()
{
Console.WriteLine("{0} kissaa olemassa", instances);
}
}
public class TestCat
{
public static void Testaa()
{
Cat.HowManyCats();//should be zero in the beginning
Cat misse = new Cat();
Cat.HowManyCats();//should be 1
Cat tassu = new Cat();
Cat.HowManyCats();//should be 2
}
}
//start point
class Program
{
static void Main(string[] args)
{
JAMK.IT.TestCat.Testaa();
}
}
}
Oheisessa koodiesimerkissä on kutsuttu staattisia metodeja, jotka ovat määritelty samassa luokassa ja eri luokassa. Vertailun vuoksi on kutsuttu myös olion metodia.