L'estate fa venire strani pensieri ... perche' le formiche hanno 6 zampe, perche' Dio ha creato l'universo solo in una settimana e Microsoft non riesce a fare un buon sistema operativo in 5 anni ... e tante altre. In una delle altre mi chiedo perche' in C# la lunghezza di una stringa e' una proprieta' di tipo Int32. La lunghezza e' un valore che puo' essere solo >= di zero. Il ragionamento mi avrebbe portato a definirla come UInt32. Inoltre averlo definito come Int32 mi limita la dimensione massima delle stringhe a 2,147,483,647 mentre con uint potrei avere stringhe...
La Finalize e' un metodo chiamato dal Garbage Collector sugli oggetti che devono essere distrutti per rilasciare in modo pulito le risorse tenute dall'oggetto stesso. Tuttavia se un oggetto candidato alla distruzione richiede la finalizzazione allora non viene distrutto immediatamente ma soltanto alla prossima esecuzione del GC. Studiando la classe FileStream si nota che esiste il metodo Finalize che chiude lo stream e svuota i buffer. Tuttavia quando uso la classe di solito mi ritrovo a chiamare il metodo Close quando finisco di usare l'oggetto FileStream e guarda caso la Close fa le stesse cose della Finalize. Questo significa...