Newsgroup: it.comp.lang.visual-basic
Titolo: C# e Vb .NET: ma sono uguali?!?

Sto studiandomi (nel tempo libero, visto che mi occupo di Database e 
analisi dati), un manuale di .NET. 
Tutte le istruzioni vengono riportate nel caso C# e VB e, almeno finora 
(prime 6 lezioni), ho notato una sostanziale uguaglianza. Insomma, a 
parte la sintassi (i cicli for, le if, i ; alla fine delle istruzioni 
in c#, etc.), il modo in cui si usa .NET e' praticamente lo stesso. 
Io ho lavorato per anni su C e Pro-C, ho fatto la tesi in C++ (9 anni 
fa... vabbe', ne e' passata di acqua sotto i ponti...) e quindi conosco 
le problematiche OOP e sarei propenso, a questo punto, ad usare C# 
invece di VB. 
In VB ho una discreta esperienza di sviluppo fatta di "lavoretti" da 
tempo libero, ovvero i classici gestionali da 300 euro cad. =:D
Finora avevo preferito usare VB (dalla v.3 alla v.6) per 
questi "giocattolini", visto che era un tool rapido che mi permetteva 
di realizzare in poco tempo tutto il sw. da due soldi, ma ora mi 
ritrovo sconcertato: Vb o C# cambia poco per chi conosce entrambe le 
sintassi! Sbaglio qualcosa?
Inoltre, conoscendo C#, secondo voi, potrei prepararmi il terreno per 
poter poi passare a Java? Esiste una forte analogia fra questi ultimi 
due ambienti oppure le differenze sono consistenti?
Grazie a chi vorra' chiarirmi le idee... ;)
Ciao
GigioTD
Inviato da 
www.mynewsgate.net


ti confermo che dicono che sono molto simili, ovvio che cambia tutto il
framework, quindi tutta la rosa  degli oggetti e metodi a disposizione, però
come si scrive dovrebbe essere molto simile.

 due ambienti oppure le differenze sono consistenti?
questo lo ignoro, non avendo mai utilizzato java.
-- 
Salutoni
Sergio
per rispondere... togli il group dall'indirizzo

due ambienti oppure le differenze sono consistenti?
Mettiamola cosě, probabilmente č piů facile passare da C# a Java che
da VB6 a 
VB.NET
 ...
Ciao!

 da VB6 a 
VB.NET
 ...
Ok... grazie a te a tutti gli altri per avermi chiarito le idee. A quanto 
pare le mie impressioni erano giuste. 
ciao ;)
GigioTD 
Inviato da 
www.mynewsgate.net

> pare che l'esimio balena sostenga che per trasformare un codice c# in
vb.net
Alla conferenza di ieri ha affermato che un programmatore 
VB.NET
, in 2
settimane è operativo in C#
Ciao, Vincenzo

 settimane è operativo in C#
Ok... quindi, come ho gia' detto, le mie impressioni sono confermate.
Grazie!
GigioTD
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 poter poi passare a Java?
No, sono due cose molto diverse, nonostante le due filosofie si assomiglino.
Ciao
--
Math Parser : 
http://www.neodatatype.net
FlowChart   : 
http://www.neodatatype.net/dump/flowchart/dir.asp
Sito Comune : 
http://www.it-lang-vb.net

 
http://blogs.msdn.com/CSharpFAQ/archive/2004/03/11/87816.aspx
Peccato che quasi tutte queste cose in più di Vb.net siano contrarie alle
specifiche del CLR per una buona interoperabilità tra i vari linguaggi :(
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/ht
ml/cpconnamingguidelines.asp
e
http://www.gotdotnet.com/team/fxcop/
Date un occhio a questo qui che ho trovato ;)
http://www.microsoft.com/seminar/shared/asp/view.asp?url=/seminar/en/2002053
1devt1-47/manifest.xml&wmpver=8.0.0.4487


specifiche del CLR per una buona interoperabilità tra i vari linguaggi :(
CLS afaik ;-)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconwritingcls-compliantcode.asp
Ciao!

 CLS afaik ;-)
Sì, esatto :)
ClS, CLR... è uguale :P le CLS sono usate dal CLR.



Anche se in realtą una classe puņ essere CLSCompliant anche se non aderisce
alle specifiche della buona programmazione .Net, come ad es. l'uso delle
proprietą con parametri (le cosi dette "indexed properties") che in C# non
sono ammesse se non per l'enumertativa this.


 Microsoft.VisualBasic ;) )
Non solo ma anche Using,Generics,Global Namespaces, Custom event handling,
Continue, Unsigned Types..
E poi il namespace My (che C# non ha...) che in alcuni casi può evitarti
righe e righe di codice...
-- 
Corrado Cavalli [Microsoft .NET MVP-MCP]
UGIdotNET - 
http://www.ugidotnet.org
Weblog: 
http://www.ugidotnet.org/710.blog

 Dim xyz as Int32=i.ToInt32()
Mi ero confuso :)
Intendevo convertire un UInt* in Int*
Es.
Dim u As UInt32
Dim i As Int32
i = u ' Invalid cast!


> i = u ' Invalid cast!
Dim u As UInt32
Dim i As Int32
i = Convert.ToInt32(u)
Il problema e' che in 
VB.NET
 non hai (ancora) il supporto per gli Unsigned
types (che non sono CLS compliant...) quindi anche una semplice assegnazione
(per non parlare di un operazione piu' complicata) diventa problematica.
HTH


 settimane è operativo in C#
ha anche detto che usava il C# per i controlli perche' + performante e vb
per tuto il resto...
Questa frase non l'ho capita...
cioe' C# e vbn non generano lo stesso codice intermedio ? e per scrivere una
routine in C# , non uso la stessa struttura che uso in vbn  ? bho ! Io passo
dall'uno all'altro con una estrema semplictia' in quanto anche la sintassi
e' #.net ed e' Vb like o C like ma alla fine sempre la struttura net si
segue !
-- 
<Gigio2K>
--- 
http://www.g2kweb.it/gigio2k
 ---
Nokia -> I.T.H.N. -> 
http://www.ithn.it/
VB -> I.C.L.VB -> 
http://www.it-lang-vb.net/

 i = Convert.ToInt32(u)
:P
Adesso mi sotterro :)
E dire che avevo provato sia il DirectCast() (che ovviamente non va perchè u
è un value type) e CType() che ritenevo più potente... adirittura qualcuno
mi suggerì di usare Marshal.ReadInt32.


 * usare la classe Convert
E infatti è quello che faccio sempre, solo che a volte solo il CType c la
fa.
O forse sono io che non conosco il trucco ad es. per convertire un int32 nel
corrispettivo di un Enum (se lo sapete ditemelo!)


 int32 nel corrispettivo di un Enum (se lo sapete ditemelo!)
Intendi:
Public Enum Test
 a
 b
 c
End Enum
Dim s As String = [Enum].GetName(GetType(Test), 1)
Oppure
Dim t As Test = DirectCast(System.Enum.ToObject(GetType(Test), 1), Test)


 Dim t As Test = DirectCast(System.Enum.ToObject(GetType(Test), 1), Test)
Questa.
Certo che è bella tosta da scrivere ogni volta :)
Non potevano mettere un bel .ToObject() direttamente su ogni membro
dell'enumerativo?
Public Enum Test
 a
 b
 c
End Enum
Dim t As Test = DirectCast(a.ToObject(), 1), Test)
o meglio ancora qualcosa tipo
Dim t As Test = int32.FromEnum(a)


 Dim t As Test = int32.FromEnum(a)
Volevo dire
Dim t As Test = Enum.FromObject(1)



Credo che sceglierň questa forma, che mi pare equivalga (compila, adesso
provo a vedere se funziona anche):
Dim o as object = 1
Dim t As Test = DirectCast(o, Test)


 Dim t As Test = DirectCast(o, Test)
Cosi ti becchi un bel boxing e relativo unboxing... un toccasana per le
performances...


 performances...
Perchč, non č lo stesso passare per Enum.ToObject()?


> Perchč, non č lo stesso passare per Enum.ToObject()?
Ops! hai ragione... ;-)
