Sobes.tech
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.