Quote Originariamente inviata da Pirand92 Visualizza il messaggio
Quindi con l'operatore new decido io quando liberare la memoria (a seconda di dove e quando mi serve) usando ovviamente l'operatore delete. Mentre con la stack lo decide la fine dl blocco (tranne che con le variabili static, ma quella è un'altra cosa).

Giusto od ho sbagliato qualcosa?
Ti stai confondendo col c++, in c# non esiste l'operatore delete ma viene gestito dalla garbage collection e tramite Dispose() puoi liberare delle risorse(Bitmaps,Sockets,etc...) mentre con GC.Collect() puoi forzare questo processo. In c# di solito non ricevi mai la memoria direttamente allocata da new ma quella che ti passa il GC o il metodo nativo, ad esempio se allochi tramite Marshal dovrai liberare il puntatore sempre tramite Marshal, in pratica non hai mai un accesso diretto alla memoria perché sei in un ambiente managed(con unsafe al massimo puoi gestire i puntatori).