Czytałem książkę ilustrowaną C# 2012 w sekcji Łączenie Punktów Delegatów nie zauważam? Cel delegatów jest niezmienny.Jaki jest cel delegatów są niezmienne w języku C#?
Łącząc Delegaci Wszyscy delegaci widzieliście do tej pory miał tylko jedną metodę w swoich listach wywołania. Delegatów można łączyć " za pomocą operatora dodawania. Rezultatem operacji jest utworzenie nowego delegata, z listą wywołań, która jest konkatenacją kopii list wywołań dwóch argumentów operandowych . Na przykład poniższy kod tworzy trzech delegatów. Trzeci uczestnik jest tworzony z połączenia dwóch pierwszych.
MyDel delA = myInstObj.MyM1;
MyDel delB = SClass.OtherM2;
MyDel delC = delA + delB; // Has combined invocation list
Chociaż termin łącząc delegatów może sprawiać wrażenie, że delegaci operand są zmodyfikowane, są one w ogóle nie zmieniło. W przypadku fakt, że delegaci są niezmienni. Po utworzeniu obiektu uczestnika nie można go zmienić. Rysunek 15-6 ilustruje wyniki poprzedniego kodu. Zauważ, że delegaci operandów pozostają niezmienione.
Delegaci są w rzeczywistości wskaźnikami metod. Co byś zrobił, aby zmutować takiego delegata? Zmodyfikuj podstawową metodę? –
@YuvalItzchakov Cóż, prawdopodobnie OP może pomyśleć, że mogą być zmienne, więc dodanie dwóch delegatów ponownie wykorzystuje jedną z instancji delegatów i dodaje delegata do listy inwokacji ... kto wie –