## page was renamed from rafbor/dotnet-script #format wiki #LANGUAGE it <
> <> <> = Introduzione = Questa guida spiega come creare [[Programmazione/Script|script]] in '''C#''' con lo strumento '''dotnet-script'''. Spesso non è conveniente creare un progetto per '''.NET''' per compiti piccoli e/o semplici. In questi casi può risultare utile '''dotnet-script''' che permette di eseguire il codice '''C#''' come un singolo file di script, senza nessun metodo main, nessun `.csproj` e compilazione trasparente. = Installazione = 0. Se non presente, installare '''.NET SDK''', come indicato in [[https://learn.microsoft.com/it-it/dotnet/core/install/linux-ubuntu|questa guida]]. 0. Per installare '''dotnet-script''' digitare nel [[AmministrazioneSistema/Terminale|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. 0. Creare una cartella `DotnetScript` nella propria '''Home'''. 0. Aprire un [[AmministrazioneSistema/Terminale|terminale]] e spostarsi in questa cartella. 0. Digitare il seguente comando: {{{ dotnet script init }}} Verrano creati due file: `omnisharp.json` e `main.csx`. * `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. Il contenuto sarà simile al seguente:{{{#!cplusplus #!/usr/bin/env dotnet-script Console.WriteLine("Hello world!"); }}} 0. Su Linux gli script possono essere eseguiti direttamente come se fossero degli eseguibili. Verificare che lo script funzioni eseguendo il seguente comando:{{{ ./main.csx }}} L'output dovrà essere:{{{ Hello World! }}} 0. Di seguito un esempio di come sfruttare le potenzialità di '''.NET''', creando 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:{{{#!cplusplus #!/usr/bin/env dotnet-script using System; using System.Data; Int16 nEta = 0; if (Args.Count > 0) nEta = Convert.ToInt16(Args[0]); else { Console.WriteLine("L'età non è stata specificata"); return; } DataTable dtable = new DataTable(); dtable.Columns.Add("Nome", typeof(string)); dtable.Columns.Add("Eta", typeof(Int16)); dtable.Rows.Add("Silvia", 32); dtable.Rows.Add("Roberto", 28); dtable.Rows.Add("Leonardo", 25); dtable.Rows.Add("Francesco", 59); dtable.Rows.Add("Alessandro", 55); dtable.Rows.Add("Lorenzo", 18); dtable.Rows.Add("Mattia", 41); dtable.Rows.Add("Tommaso", 62); dtable.Rows.Add("Gabriele", 39); dtable.Rows.Add("Federico", 20); int n=0; DataRow[] dtRows; dtRows = dtable.Select("Eta<" + nEta, "Eta ASC"); string strResult; Console.WriteLine("Hanno meno di " + nEta + " anni"); foreach(DataRow row in dtRows) { strResult = string.Format("{0, -15}Età: {1}", row["Nome"], row["Eta"]); Console.WriteLine(strResult); } }}} 0. Eseguire 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 la [[https://github.com/dotnet-script/dotnet-script|pagina GitHub]] del progetto. = Ulteriori risorse = * [[Programmazione/CSharp|Guida C#]] ---- CategoryProgrammazione