Junior — Middle
A programozási nyelvben a delegált referencia vagy érték típus?
sobes.tech MI
Válasz az MI-től
A C# nyelvben a delegátok referencia típusok. Ez azt jelenti, hogy amikor egy delegátot más változónak adunk értéket vagy átadunk egy metódusnak, akkor a delegát objektum hivatkozását másoljuk, nem magát az objektumot.
A delegátok olyan objektumok, amelyek metódusokat kapszuláznak és tárolják ezekre a metódusokra mutató hivatkozásokat. Ennek köszönhetően lehetőség van metódusokat hívni delegátumon keresztül, valamint több metódust egyesíteni egy delegátumba (multicast delegátok).
Példa:
public delegate void MyDelegate(string message);
MyDelegate d1 = Console.WriteLine;
MyDelegate d2 = d1; // d2 ugyanarra a delegátumra mutat, mint d1
Console.WriteLine(object.ReferenceEquals(d1, d2)); // True
Ezért a C#-ban a delegátok referencia típusok.