La faccenda "carattere $" cui ti riferisci viene chiamata "Smart String Literal". Te lo scrivo sperando che tu cambi il titolo di questo thread con qualcosa tipo:
"Smart String Literal - a che serve?"
(magari anche mettendo dei buoni tag), così il thread potrebbe diventare facilmente trovabile, anche per altri membri italiani.
Innanzitutto c'è il tutorial di Erel:
Smart String Literal.
Non volendo "annoiarsi" con l'inglese... come premette Erel i vantaggi nell'uso di SSL (non mi convince molto usare questo acronimo, ma
qui facciamolo) sono 3:
1 - ti consente di scrivere il contenuto di un'unica stringa su più righe.
Come esempio prendo la tua riga di Log - uso però una variabile Stringa, solo per mia "comodità" :
Dim Total As Double
Dim i, Num As Int
Total = 123456.789
Num = 987
i = 13
'Log($"i=${i} Num=${Num} Total=${Total} Avg=${Total/i} Diff=${31.8-(Total/i)}"$)
Dim strLog As String = $"
i = ${i}
Num = ${Num}
Total = ${Total}
Avg = ${Total / i}
Diff = ${31.8 - (Total / i)}
"$
LogColor(strLog, Colors.Blue)
Scrivendo quella concatenazione su più righe, il sorgente è molto più leggibile (e modificabile), come vedi, si distinguono meglio le varie parti.
(Il log; nota che per ottenerlo così, al sorgente che hai indicato dovresti aggiungere parecchi & CRLF &):
2 - Non hai la necessità di combattere con virgolette varie.
Come da esempio di Erel, italianizzato:
Log($"Non c'è bisogno di gestire le "doppie-virgolette"! "$)
' Senza SSL, dovresti scrivere:
Log("Non c'è bisogno di gestire le " & Quote & "doppie-virgolette" & Quote & "!")
' E per fortuna c'è la costante Quote, altrimenti... vai di triple doppie-virgolette!
3 - Traduzione letterale: Interpolazione di stringhe.
All'interno di SSL puoi inserire dei "segnaposto" (placeholders), utili per inserire variabili ed altre utili cosette.
E' anche facile scrivere delle SSL con dei segnaposto, anche se può non sembrare così.
Per iniziare una SSL, dito mignolo mano destra sullo Shift di destra, contemporaneamente mano sinistra, prima tasto 4 e poi 2, ovvero Dollaro e doppie-virgolette;
per inserire un segnaposto è sufficiente inserire un $ (Shift destro + tasto 4, quindi facilissimo) e compare un elenco di formattazioni utilizzabili.
Volendo inserire delle variabili del progetto senza particolare formattazione, basterà scegliere la prima voce del menu, <no format> e premere Tab:
Gli altri tipi di formattazione sono spiegati nel menu stesso, scorrendo voce per voce (le prime sono per formattazioni numeriche, poi di data e tempo e "codice XML").
Ad esempio, modificando la strLog precedente in questo modo:
Dim strLog As String = $"
i = ${i}
Num = ${Num}
Total = $1.2{Total}
Avg = $1.2{Total / i}
Diff = $1.2{31.8 - (Total / i)}
"$
otterresti la formattazione con decimali e gruppi: