Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "Programmazione/CSharp/Script"
Differenze tra le versioni 2 e 3
Versione 2 del 03/01/2023 07.50.59
Dimensione: 3766
Autore: rafbor
Commento:
Versione 3 del 03/01/2023 08.46.08
Dimensione: 3780
Autore: rafbor
Commento:
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 37: Linea 37:
 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>>  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>>
Linea 76: Linea 76:
 0. Esguire lo script con il seguente comando:{{{  0. Eseguire lo script con il seguente comando:{{{
Linea 100: Linea 100:
Per maggiori informazioni consultare il [[https://github.com/dotnet-script/dotnet-script|sito ufficiale]]. Per maggiori informazioni consultare il [[https://github.com/dotnet-script/dotnet-script|repository del progetto]].


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.

  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