Csharp/Egenskaper

(Omdirigert fra «Csharp/Kapittel12»)

Egenskaper rediger

En 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