Sobes.tech
Junior — Middle

Můžeš uvést hlavní typy dat, které používají odkazy, a vysvětlit jejich vlastnosti?

sobes.tech AI

Odpověď od AI

V jazyce C# jsou hlavní datové typy, které používají odkazy, referenční typy. Patří sem:

  • Třídy (class) — objekty jsou vytvářeny na haldě, proměnná uchovává odkaz na objekt.
  • Rozhraní (interface) — proměnná uchovává odkaz na objekt implementující rozhraní.
  • Pole (array) — pole jsou také referenční typy.
  • Delegáty (delegate) — odkazy na metody, také referenční typy.

Vlastnosti referenčních typů:

  • Proměnná neukládá samotný objekt, ale odkaz na oblast paměti s objektem.
  • Při přiřazení se kopíruje odkaz, nikoliv objekt.
  • Objekty jsou vytvářeny na spravované haldě, garbage collector uvolňuje paměť.
  • Může být hodnota null, což znamená, že neexistuje odkaz na objekt.

Příklad:

class Person {
    public string Name;
}

Person p1 = new Person { Name = "Иван" };
Person p2 = p1; // p2 a p1 odkazují na stejný objekt
p2.Name = "Пётр";
Console.WriteLine(p1.Name); // Vypíše "Пётр"