Newsgroup: it.comp.lang.visual-basic
Titolo: [!3][.NET] VB -> VB.NET senza compatibilità

Questo è un post sperimentale e dato che non la volta scorsa non ha avuto
seguito e io non ci rinuncio :P verrà aggiornato e postato "ogni tanto".
Invito tutti i partecipanti a rispondere a questo post suggerendo o
notificando altre soluzioni di conversione mancanti e/o correggendo le
presenti.
-----
Lo scopo di questo post è quello di scrivere applicazioni 
VB.NET
 senza usare
namespaces di compatibilità con le vecchie versioni di Visual Basic.
Dato per scontato che 
VB.NET
 è un linguaggio completamente differente dai
"vecchi" VisualBasic, è inutile se non dannoso utilizzarlo come se fosse una
sorta di VB7.
Con questo post vedremo come
- sfruttare le potenzialità del .NET framework nella sua forma più standard.
- evitare di usare funzioni compatibili con le precedenti versioni di VB.
- creare codice più facilmente portabile in altri linguaggi .NET e in altre
piattaforme.
-- Premessa
Selezionare il progetto e andare sul menu Progetto -> Proprietà.
Selezionare Proprietà Comuni -> Imports.
Selezionare e rimuovere Microsoft.VisualBasic.
-- Indice Argomenti Trattati
- Funzioni stringa
- Funzioni Matematiche
- Funzioni Data-Ora
- Conversione di tipo
- Oggetti/Classi
- Gestion Errori
- Gestione Files
-----
-- Funzioni stringa
Hex$(MyNumber)
|
+-- MyNumber.ToString("x")
InStr([...,] MyString, MySubString [,...])
|
+-- MyString.IndexOf(MySubString)                 ' binary compare
+-- MyString.ToLower.IndexOf(MySubString.ToLower) ' text compare
Len(MyString)
|
+-- MyString.Length
Mid$(MyString,...)
|
+-- MyString.SubString(...)
+-- MyString.Chars(...)
StrComp(MyString1, MyString2 [,...])
|
+-- Text.Compare(MyString1, MyString2)         ' binary compare
+-- Text.Compare(MyString1, MyString2, True)   ' text compare
-- Funzioni Matematiche
Le più comuni si ritrovano sotto il namespace
Math.*
Randomize(), Rnd()
|
+-- New Random(...)
-- Funzioni Data-Ora
Date()
|
+-- DateTime.Today()
DateSerial(MyYear, MyMonth, MyDay)
|
+-- New DateTime(MyYear, MyMonth, MyDay)
DateAdd(..., MyDate, ...)
|
+-- MyDate.Add(New TimeSpan(...))
+-- MyDate.AddDays(...)
DateDiff(..., MyDate, ...)
|
+-- MyDate.Subtract(...)
+-- MyDate.AddDays(-...)
Day(MyDate)
|
+-- MyDate.Day
Month(MyDate)
|
+-- MyDate.Month
Now()
|
+-- DateTime.Now()
Time()
|
+-- DateTime.Now.TimeOfDay()
Year(MyDate)
|
+-- MyDate.Year
-- Conversione di tipo
CBool(MyVar), CInt(MyVar), CStr(MyVar), C*(MyVar), ...
|
+-- Convert.To*(MyVar)
CType(MyVar, ...)
|
+-- Convert.ChangeType(MyVar, ...)
-- Oggetti/Classi
Collection
|
+-- HashTable
-- Gestion Errori
{VB4/5/6}
| On Error Goto Exception:
|     ' ...some code...
|     Exit Sub
| Exception:
|     ' ...error handling...
|---
|
+--- {.NET}
| Try
|     ' ...some code...
| Catch ex As Exception
|     ' ...error handling...
| End Try
|---
Err.Raise ...
|
+-- Throw New Exception(...)
-- Gestione files
Imports System.IO
{VB4/5/6}
| Dim MyFile As Long
| MyFile = FreeFile()
|---
|
+--- {.NET}
| Dim MyFile As FileStream
|---
{VB4/5/6}
| Open MyFileName ... As MyFile
|---
|
+--- {.NET}
|
| Dim MyFile As FileStream
| Myfile = File.Open(MyFileName, ...)
|---
' // Initialize the expression evaluator
Engines.Evaluator = CreateObject("
http://www.neodatatype.net
")
' // you can find resources for and from the NG here!
Me.SitoComune = "
http://www.it-lang-vb.it
"

> Myfile = File.Open(MyFileName, ...)
Scusa, perché non:
dim myfile as filestream = new filestream(myfilename, ...)
Ciao.
--
BSD is for UNIX-lovers -- linux is for Windows-haters.

 dim myfile as filestream = new filestream(myfilename, ...)
Perchè anzichè "salva" ho premuto "invio" può essere una scusa? :)
Rimedierò nel prossimo post.
Ciao



[ARIMEGACUT]
Ciao
    Mavimo
(che al momento ha qualche problema con 
VS.NET
)

 Non ti stai dimenticando il Finally?
No, è stato omesso volontariamente.
Questa non vuole essere una guida per 
VB.NET
, ma solo un riferimento per
avere la struttura corrispondente VB <--> .NET.
Se poi uno si vuole documentare sulle altre possibilità delle varie sintassi
preme F1 :)
Ciao


 | End Try
[CUT]
Cioa
    Mavimo