Sobes.tech
Junior

Какви са референтните типове данни в C# и какви са техните характеристики?

sobes.tech AI

Отговор от AI

Типовете данни с референция съхраняват препратки към обекти в купчината. Променливите от тип референция съдържат адреса в паметта, където е разположен самият обект.

Характеристики:

  • Прехвърляне по препратка: Присвояването на стойността на променлива от тип референция на друга променлива от същия тип води до това и двете да сочат към един и същи обект в паметта.
  • Управление на паметта: Обектите от тип референция се поставят в управляваната купчина. Събирачът на отпадъци автоматично освобождава паметта, заета от обекти, към които вече няма препратки.
  • Стойност по подразбиране: Стойността по подразбиране за тип референция е null.
  • Наследяване и полиморфизъм: Типовете с референция поддържат наследяване, което позволява създаването на йерархии от класове и използването на полиморфизъм.
  • Сравнение: Операторът == по подразбиране сравнява препратките, а не съдържанието на обектите.

Примери:

  • Класове (class)
  • Интерфейси (interface)
  • Делегати (delegate)
  • Масиви (array)
  • Стрингове (string) (макар че string е неизменяем тип с референция)
// Пример за референционен тип Class1
public class Class1
{
    public int Value { get; set; }
}

// Създаване на екземпляр на Class1
Class1 obj1 = new Class1 { Value = 10 };

// Присвояване на препратка
Class1 obj2 = obj1;

// Промяна на стойността чрез obj2 влияе на obj1
obj2.Value = 20;

// Сега, obj1.Value е равно на 20
System.Console.WriteLine(obj1.Value);