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 astringvá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);