Csharp/Egenskaper
Egenskaper
redigerEn class, struct og interface kan inneholde egenskaper, en egenskap kan skrives til, leses fra, eller begge deler, avhengig av hva som trengs.
[access modifier] [dataype] [navn på egenskapen]
{
// Dropp hele get for å lage en egenskap som kun kan skrives til
get
{
}
// Dropp hele set for å lage en egenskap som kun kan leses fra
set
{
}
}
Her ser vi at i motsetning til funksjoner, skal ikke properties ha noen paranteser, men to interne funksjoner kalt get og set. get er i bunn og grunn en helt vanlig funksjon, med samme datatypen som egenskapen, man skal derfor bruke funksjonen "return" for å returnere en verdi. set er en annen funksjon, som har et gjemt parameter, som heter "value", dette er innverdien til egenskapen.
Internt i .NET vil det lages to funksjoner, f.eks. på en egenskap av typen int som heter size, og kan både leses, og skrives til, vil bli laget slik internt i .NET:
public int get_size() public void set_size(int value)
Men dette er gjemt for programmereren, med mindre programmereren bruker C++.NET
La oss begynne med å lage en struktur, kalt "CustomPoint"
public struct CustomPoint
{
private int m_x; // Variabelen som inneholder verdien X
private int m_y; // Variabelen som inneholder verdien Y
public int X
{
get
{
return m_x;
}
set
{
m_x = value;
}
}
public int Y
{
get
{
return m_y;
}
set
{
m_y = value;
}
}
}
Dette gir oss en struktur som inneholder X og Y