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