|
⇤ ← Versione 1 del 02/01/2023 21.03.56
Dimensione: 2688
Commento:
|
Dimensione: 3766
Commento:
|
| Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
| Linea 10: | Linea 10: |
Prerequisito: '''.NET SDK''' deve essere installato. |
|
| Linea 26: | Linea 28: |
| Linea 29: | Linea 30: |
| 0. Verificare che lo script funzioni eseguendo il seguente comando:{{{ | 0. Su Linux, gli script possono essere eseguiti direttamente come se fossero degli eseguibili quindi verificare che lo script funzioni eseguendo il seguente comando:{{{ |
| Linea 36: | Linea 37: |
| 0. Modificare il file `main.csx` copiando e incollando il seguente contenuto:{{{#!cplusplus | 0. Andiamo oltre e sfruttiamo le potenzialità di .NET con un esempio che creerà un array di persone (nome ed età). Allo script verrà passato un parametro, memorizzato nella variabile `Args` e recuperato nella variabile `nEta`, quindi lo script filtrerà le persone che hanno meno di `nEta` anni, ordinate per età.<<BR>> Modificare il file `main.csx` copiando e incollando il seguente contenuto:{{{#!cplusplus |
| Linea 74: | Linea 76: |
| 0. Esguire lo script con il seguente comando:{{{ ./main.csx 50 }}} L'output sarà:{{{ Hanno meno di 50 anni Lorenzo Età: 18 Federico Età: 20 Leonardo Età: 25 Roberto Età: 28 Silvia Età: 32 Gabriele Età: 39 Mattia Età: 41 }}} |
|
| Linea 75: | Linea 90: |
| == Modo REPL (Read-Evaluate-Print-Loop) == | |
| Linea 76: | Linea 92: |
| LAVORO IN CORSO | Il modo '''REPL''' ("modo interattivo") viene avviato eseguendo '''dotnet-script''' senza alcun argomento. |
| Linea 78: | Linea 94: |
| Il modo interattivo consente di fornire singoli blocchi di codice '''C#''' e di eseguirli non appena si preme '''Invio'''.{{{ ~$ dotnet script > var x = 1; > x+x 2 }}} |
Attenzione! Questa è una Pagina di prova. Le informazioni riportate potrebbero essere incomplete, errate e potenzialmente pericolose. Per contribuire alla realizzazione di questa pagina consultare la discussione di riferimento. |
Scripting in C# con dotnet-script
Creare un progetto .NET per compiti piccoli e semplici è un po' eccessivo. dotnet-script semplifica le cose. Permette di eseguire il codice C# come un singolo file di script. Nessun metodo main, nessun .csproj e compilazione trasparente.
Prerequisito: .NET SDK deve essere installato.
Per installare dotnet-script digitare nel terminale il seguente comando:
dotnet tool install -g dotnet-script
Creazione di uno script
dotnet-script è dotato di un comando di init per generare un semplice script.
Creare una cartella DotnetScript nella propria Home.
Aprire un terminale e spostarsi in questa cartella.
Digitare il seguente comando:
dotnet script init
Verano creati 2 file: main.csx e omnisharp.json.
omnisharp.json contiene le impostazioni dello script, come il framework di destinazione e i riferimenti a nuget consentiti.
main.csx è strutturato in modo da contenere un semplice esempio di Hello World funzionante. Contenuto
Su Linux, gli script possono essere eseguiti direttamente come se fossero degli eseguibili quindi verificare che lo script funzioni eseguendo il seguente comando:
./main.csx
L'output deve essere:
Hello World!
Andiamo oltre e sfruttiamo le potenzialità di .NET con un esempio che creerà un array di persone (nome ed età). Allo script verrà passato un parametro, memorizzato nella variabile Args e recuperato nella variabile nEta, quindi lo script filtrerà le persone che hanno meno di nEta anni, ordinate per età.
Modificare il file main.csx copiando e incollando il seguente contenuto:1 #!/usr/bin/env dotnet-script 2 3 using System; 4 using System.Data; 5 6 Int16 nEta = 0; 7 if (Args.Count > 0) 8 nEta = Convert.ToInt16(Args[0]); 9 else 10 { 11 Console.WriteLine("L'età non è stata specificata"); 12 return; 13 } 14 DataTable dtable = new DataTable(); 15 dtable.Columns.Add("Nome", typeof(string)); 16 dtable.Columns.Add("Eta", typeof(Int16)); 17 dtable.Rows.Add("Silvia", 32); 18 dtable.Rows.Add("Roberto", 28); 19 dtable.Rows.Add("Leonardo", 25); 20 dtable.Rows.Add("Francesco", 59); 21 dtable.Rows.Add("Alessandro", 55); 22 dtable.Rows.Add("Lorenzo", 18); 23 dtable.Rows.Add("Mattia", 41); 24 dtable.Rows.Add("Tommaso", 62); 25 dtable.Rows.Add("Gabriele", 39); 26 dtable.Rows.Add("Federico", 20); 27 int n=0; 28 DataRow[] dtRows; 29 dtRows = dtable.Select("Eta<" + nEta, "Eta ASC"); 30 string strResult; 31 Console.WriteLine("Hanno meno di " + nEta + " anni"); 32 foreach(DataRow row in dtRows) 33 { 34 strResult = string.Format("{0, -15}Età: {1}", row["Nome"], row["Eta"]); 35 Console.WriteLine(strResult); 36 }
Esguire lo script con il seguente comando:
./main.csx 50
L'output sarà:
Hanno meno di 50 anni Lorenzo Età: 18 Federico Età: 20 Leonardo Età: 25 Roberto Età: 28 Silvia Età: 32 Gabriele Età: 39 Mattia Età: 41
Modo REPL (Read-Evaluate-Print-Loop)
Il modo REPL ("modo interattivo") viene avviato eseguendo dotnet-script senza alcun argomento.
Il modo interattivo consente di fornire singoli blocchi di codice C# e di eseguirli non appena si preme Invio.
~$ dotnet script > var x = 1; > x+x 2
Per maggiori informazioni consultare il sito ufficiale.
