23
Nov
2007
Inserito da: Andrea Lanfranchi in: Senza categoria
Fanno capolino le foto che celebrano la congiunzione del ramo francese e di quello spagnolo del nuovo tunnel ferroviario dei Pirenei. Bravi !
Ma da noi … la TAV che fine ha fatto ? Ah già … dimenticavo : ma che c’entriamo noi con l’Europa ?
In seguito ad un attacco di sindrome da acquisti compulsivi ho comprato l’upgrade del mio caro Windows XP Pro a Windows Vista Business. 🙁
Maro’ … mi sa tanto che non ho mica fatto una furbata. Il mio pc che consideravo sufficientemente carrozzato (vedi specifiche sotto) sembra uno sherpa che debba portare un mammuth in cima all’Everest senza bombole di ossigeno.
Panf Panf.
Computer:
ABIT K8 Chipset VIA
AMD ATHLON 3500
ATI RADEON 9800 SE
2Gb Ram
MAXTOR 6 L160 (SATA)
Dai miei post precedenti avrete sicuramente capito che NON sono un accanito sostenitore della maggiore bontà di una sintassi a discapito di un’altra. Alla fine diventa tutto MSIL e quindi la forma tecnica scelta per lo sviluppo del proprio codice dipende esclusivamente dal linguaggio che ci è maggiormente familiare.
Ciò detto non si può nemmeno negare che esistano delle differenze che rendono più o meno facile, efficente e leggibile il codice (ovviamente secondo i punti di vista).
Uno dei fattori che NON mi piacciono relativamente alla sintassi C# è la distinzione tra maiuscole e minuscole. Questa impostazione rende piuttosto difficile, per esempio, la distinzione tra una variabile oggetto ed il tipo di oggetto che l’ha generata. Guardate l’esempio seguente:
C#
foreach (DateTime date in _Months.Keys)
Questo esempio istanzia un ciclo da eseguirsi per ogni oggetto di tipo Datetime contenuto in una collezione. La sintassi è valida e perfettamente lecita ma per uno sviluppatore VB può creare confusione dato che “date” rappresenta l’indicazione di un tipo dati.
Per questo motivo lo sviluppatore che cerca di tradurre con :
VB
For Each Date As DateTime In _Months.Keys
riceverebbe un errore in quanto Date rappresenta un tipo dati e non un’istanza di variabile oggetto. Dovremmo quindi modificare il codice con:
VB
For Each objDate As DateTime In _Months.Keys
che è corretto.
Esistono però dei casi in cui C# è più agile di VB. Dovendo, ad esempio, gestire all’interno del codice un evento per effettuare un’operazione non molto complessa possiamo creare in C# un delegato di funzione molto rapidamente mentre in VB dovremo scrivere qualche riga di codice in più. Nell’esempio che segue vediamo come gestire un evento scatenato da Object azzerando il contenuto di una variabile:
C#
Object.Saved += delegate { mystring = null; };
VB
AddHandler Object.Saved, AddressOf ObjectSavedHandler
mystring = String.Empty
End Sub