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) (hocistringje 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);