Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati

Versione 6 del 03/01/2023 20.05.05

Nascondi questo messaggio


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.

Guida verificata con Ubuntu: 22.04

Problemi in questa pagina? Segnalali in questa discussione

Introduzione

Questa illustra come creare 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

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.

  1. Creare una cartella DotnetScript nella propria Home.

  2. Aprire un terminale e spostarsi in questa cartella.

  3. 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

         1 #!/usr/bin/env dotnet-script
         2 Console.WriteLine("Hello world!");
      
  4. 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!
  5. 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 }
    
  6. 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 il repository del progetto.


CategoryNuoviDocumenti