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 di 4,294,967,295 caratteri. Ovviamente si puo' obiettare che 4GB di stringa mandano in OutOfMemory l'heap ma da un punto di vista di purezza del modello mi incuriosisce il motivo che ha portato gli ingegneri della Microsoft a considerare solo un int.