Ok. Ostatnio Visual Studio rzuciło mi błędem "Cannot use ref or out parameter 'x' inside an anonymous method, lambda expression, or query expression". Nigdy wcześniej się z tym nie spotkałem, więc postanowiłem to zbadać.

Okazuje się, że wyrażenia lambda mają swój własny cykl życia zmiennych. Zmienne są trzymane w wyrażeniach lambda, nawet wtedy, kiedy ich zakres powinien się już skończyć i GC powinien je zgarnąć. Dlatego, gdybyśmy przekazali zmienną przez ref, moglibyśmy
@Maav: Nie udało mi się doprowadzić do działania tego na refach. (W sumie nie potrzebowałem tego refa, więc mogłem go wyrzucić w moim kodzie i się nie przejmować). Za to pobawiłem się chwilę i ze wskaźnikami już działa. Może jeszcze w wolnym czasie postaram się to zepsuć, żeby rzuciło mi wyjątkiem czy coś.


        
unsafe public void TestMethod(int* x)
        {
            
int y = 1;
            boolDel = () => { 
return y == *x; };
            intDel = () => { y *= 2; 
return