[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) |
public class Henkilo
{
// tämän arvoa ei voi muuttaa ulkopuolelta
public DateTime SyntymaAika { get; private set; }
}