Luokan ominaisuudet

Ominaisuudet ovat luokan jäseniä, jotka tarjoavat joustavan tavan lukea/kirjoittaa/laskea yksityisten kenttien arvoja. Ominaisuuksilla on aksessorit get ja set, jotka tarjoavat luku- ja kirjoitustoiminnallisuudet.
[määreet] [tyyppi] [nimi]
{
	get
	{
		// voi palauttaa mitä vaan, kunhan tyyppi on oikein
		return [arvo];
	}
	set
	{
		// value sisältää arvon, jota ollaan asettamassa
		// sen voi sijoittaa vaikka kenttään
		[kenttä] = value;
	}
}

Toisen aksessorin voi jättää määrittelemättä, jolloin ominaisuudella on vain joko luku- tai kirjoitustoiminnallisuus.

public class Henkilo
{
	// ominaisuus
	public char Sukupuoli
	{
		get
		{
			// palauttaa kentän arvon
			return sukupuoli;
		}
		set
		{
			// asettaa arvon kenttään
			sukupuoli = value;
		}
	}
	// yksityinen kenttä
	private char sukupuoli;

	// "vain luku"-ominaisuus Nimi
	public string Nimi
	{
		get
		{
			// palauttaa koko nimen
			return etunimi + " " + sukunimi;
		}
	}
	// kaksi yksityistä kenttää
	private string etunimi;
	private string sukunimi;
}

Ominaisuuksia voi myös määritellä "automaattisesti"

public class Henkilo
{
	// luo yksityisen anonyymin kentän automaattisesti
	public DateTime SyntymaAika { get; set; }
}

Ominaisuuksille voi antaa määreitä

Määre Tehtävä
public, internal, protected tai private Suojausmääre (ketkä voivat nähdä ominaisuuden)
static Staattinen ominaisuus
abstract Abstrakti ominaisuus (ei toteutusta)
virtual Virtuaalinen ominaisuus (perivä luokka voi kuormittaa)
override Kuormitus (ylikirjoitetaan perityn luokan toteutus)
new Piilotetaan perityn luokan ominaisuus
sealed Sinetöity (ei voi enää kuormittaa)
unsafe Epäturvallinen koodi (osoitin)
extern Toteutus tulee jostain muualta (esim. dll)
Ominaisuuksien aksessoreille voi myös antaa näkyvyysmääreet
public class Henkilo
{
	// tämän arvoa ei voi muuttaa ulkopuolelta
	public DateTime SyntymaAika { get; private set; }
}