Ok, ma quali? Qui ci vuole il cavatappi per ottenere qualche dettaglio...
Ambiente VB.NET
1.tentativo
codice:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim aaa As String
me.TextBox1.Text = String$(40, "-")
End Sub
String$ viene sottolineato automaticamente
nell'Elenco attività dice:
....\WindowsApplication1\Form1.vb(71): La parola chiave non può contenere un carattere tipo.
in compilazione stessi errori
2.tentativo
codice:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim aaa As String
me.TextBox1.Text = String(40, "-")
End Sub
String viene sottolineato automaticamente
nell'Elenco attività dice:
....\WindowsApplication1\Form1.vb(71): "String" non è un'espressione valida perché è un tipo classe.
e
....\WindowsApplication1\Form1.vb(71): Previsto "."
in compilazione stessi errori
3.tentativo
cosi, ovviamente, funziona.....
codice:
Dim MyString As New String("X", 30)
Me.TextBox2.Text = MyString
A fronte delle letture che stò facendo, questi errori hanno un senso.
Nel momento in cui decido di passare alla pratica mi scontro con vecchi esempi e cerco di dedurre per confronti oppure per togliermi certe curiosità prima di studiarle.
---------------------------------------------------------------------------
Originariamente inviato da daspide
la sintassi quindi l'opposto di VB6, ma anche del PadRight
ho notato che:
codice:
.NET
Dim MyString As New String("X", 30) prima si inserisce il carattere poi il n° di volte da ripetere
VB6
Dim MyString As New String$(40, "-") prima si inserisce il n° di volte da ripetere poi il carattere
comunque in futuro cercherò solo di prendere spunto per creare soluzioni pittosto che confronti/importazioni di esempi
-------------------------------------------------------------------------------
La lunghezza che ottieni in entrambi i casi che hai citato è la lunghezza della stringa in caratteri. La dimensione in byte effettiva, nel caso di VB.NET, trattandosi di caratteri Unicode, è di 2 byte per ciascun carattere.
qundi LenB leggeva l'unicode di ogni carattere in VB6; oggi, con .NET do per scontato che:
-----
Dim aa as string
me.t.text = aa.Lenght
-----
occuperà il doppio del n° di caratteri?!?!
ho provato così
codice:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim aaa As String
Dim bbb As Byte
aaa = "xasd"
Me.TextBox1.Text = aaa.Length
Me.TextBox1.Text += " ToB " & Convert.ToByte(aaa.Length)
Me.TextBox1.Text += " Ph " & bbb.Parse(aaa.Length)
End Sub
non da errori, nel campo testo scrive 4 ToB 4 Ph 4.
in nessun caso mi dice che un carattere vale 2 BYTE!