Sobes.tech
Junior

Mi a referencia típus C#-ban, és milyen jellemzőik vannak?

sobes.tech MI

Válasz az MI-től

A referenciatípusok objektumokra mutató hivatkozásokat tárolnak a heap-en. A referenciatípusú változók a memória azon címét tartalmazzák, ahol maga az objektum található.

Jellemzők:

  • Hivatkozás szerinti átadás: Egy referenciatípusú változó értékének másik, ugyanilyen típusú változónak való hozzárendelése esetén mindkettő ugyanarra az objektumra mutat a memóriában.
  • Memóriakezelés: A referenciatípusú objektumokat a kezelhető heap-en helyezik el. A szemétgyűjtő automatikusan felszabadítja a már nem hivatkozott objektumok által foglalt memóriát.
  • Alapértelmezett érték: A referenciatípus alapértelmezett értéke null.
  • Öröklődés és polimorfizmus: A referenciatípusok támogatják az öröklődést, lehetővé téve osztályhierarchiák létrehozását és a polimorfizmus használatát.
  • Összehasonlítás: Az == operátor alapértelmezés szerint a hivatkozásokat hasonlítja össze, nem az objektumok tartalmát.

Példák:

  • Osztályok (class)
  • Interfészek (interface)
  • Delegátok (delegate)
  • Tömbök (array)
  • Sztringek (string) (bár a string változatlan referenciatípus)
// Referenciatípus példája Class1
public class Class1
{
    public int Value { get; set; }
}

// Osztálypéldány létrehozása
Class1 obj1 = new Class1 { Value = 10 };

// Hivatkozás hozzárendelése
Class1 obj2 = obj1;

// Az érték módosítása az obj2-n keresztül hatással van az obj1-re
obj2.Value = 20;

// Most az obj1.Value értéke 20
System.Console.WriteLine(obj1.Value);