Sobes.tech
Junior

Čo sú referenčné typy v C# a aké majú vlastnosti?

sobes.tech AI

Odpoveď od AI

Typy údajov odkazového typu ukladajú odkazy na objekty na halde. Premenné odkazového typu obsahujú adresu v pamäti, kde je umiestnený samotný objekt.

Charakteristiky:

  • Prenos odkazom: Priradenie hodnoty jednej premennej odkazového typu inej premennej rovnakého typu spôsobí, že obe ukazujú na ten istý objekt v pamäti.
  • Správa pamäte: Odkazové objekty sú umiestnené v spravovanej halde. Zberač odpadkov automaticky uvoľní pamäť obsadenú objektmi, na ktoré už nie sú odkazy.
  • Predvolená hodnota: Predvolená hodnota pre odkazový typ je null.
  • Dedívanie a polymorfizmus: Odkazové typy podporujú dedičnosť, čo umožňuje vytváranie hierarchií tried a využívanie polymorfizmu.
  • Porovnanie: Operátor == porovnáva predvolene odkazy, nie obsah objektov.

Príklady:

  • Triedy (class)
  • Rozhrania (interface)
  • Delegáty (delegate)
  • Polia (array)
  • Reťazce (string) (hoci string je nemenný odkazový typ)
// Príklad odkazového typu Class1
public class Class1
{
    public int Value { get; set; }
}

// Vytvorenie inštancie Class1
Class1 obj1 = new Class1 { Value = 10 };

// Priradenie odkazu
Class1 obj2 = obj1;

// Zmena hodnoty cez obj2 ovplyvňuje obj1
obj2.Value = 20;

// Teraz je obj1.Value rovné 20
System.Console.WriteLine(obj1.Value);