Creare una funzione inline in C#

Muhammad Maisam Abbas 16 febbraio 2024
  1. Creare funzioni inline con espressioni Lambda in C#
  2. Creare funzioni inline con istruzioni Lambda in C#
  3. Creare funzioni inline con funzioni locali in C#
Creare una funzione inline in C#

In questo tutorial, discuteremo dei metodi per creare una funzione inline in C#.

Creare funzioni inline con espressioni Lambda in C#

In linguaggi di programmazione come C e C++, una funzione inline viene dichiarata con la parola chiave inline. Il codice all’interno di una funzione inline viene sostituito con la chiamata della funzione dalla compilazione. Quindi, rendendo il codice inline. Sfortunatamente, non esiste una parola chiave incorporata per dichiarare una funzione inline in C#. Possiamo creare una funzione inline con espressioni lambda in C#. Le espressioni Lambda vengono utilizzate per creare funzioni anonime in C#. La => parola chiave viene utilizzata per scrivere espressioni lambda.

L’esempio di codice seguente mostra come creare una funzione inline con espressioni lambda in C#.

using System;

namespace inline_function {
  class Program {
    static void Main(string[] args) {
      Func<int, int, int> add = (x, y) => x + y;
      Console.WriteLine(add(1, 2));
    }
  }
}

Produzione:

3

Abbiamo creato una funzione inline che restituisce la somma di 1 e 2 con espressioni lambda in C#. Abbiamo creato la funzione add che restituisce la somma di due variabili intere utilizzando la parola chiave =>. Il Func<int, int, int> specifica i tipi di dati dei parametri, e l’ultimo int in Func<int, int, int> specifica il tipo di ritorno della funzione anonima. Possiamo anche usare Action<T1, T2> parola chiave per specificare funzioni anonime se non vogliamo restituire nulla. Il seguente esempio di codice ci mostra come possiamo usare la parola chiave Action<T1, T2> per creare una funzione inline che non restituisce alcun valore in C#.

using System;

namespace inline_function {
  class Program {
    static void Main(string[] args) {
      Action<int, int> sum = (x, y) => Console.WriteLine(x + y);
      sum(5, 6);
    }
  }
}

Produzione:

11

Abbiamo creato una funzione inline che restituisce la somma di 5 e 6 con espressioni lambda in C#. Abbiamo creato la funzione sum() che restituisce la somma di due variabili intere utilizzando la parola chiave =>. L ‘Action<int, int> specifica i tipi di dati dei parametri della funzione anonima. Possiamo usare espressioni lambda solo per una singola linea di codice.

Creare funzioni inline con istruzioni Lambda in C#

Se abbiamo più di una linea di codice nel nostro codice, dobbiamo usare le istruzioni lambda. Le istruzioni Lambda vengono utilizzate anche per dichiarare funzioni anonime che possono essere utilizzate come funzioni inline. La dichiarazione di funzioni anonime nelle istruzioni lambda è simile alle espressioni lambda, con l’unica differenza che le istruzioni su più righe sono racchiuse tra {};. L’esempio di codice seguente mostra come creare una funzione inline con istruzioni lambda in C#.

using System;

namespace inline_function {
  class Program {
    static void Main(string[] args) {
      Action<int, int> sum = (x, y) => {
        int s = x + y;
        Console.WriteLine(s);
      };
      sum(6, 7);
    }
  }
}

Produzione:

13

Abbiamo creato una funzione inline che mostra la somma di 6 e 7 con le istruzioni lambda in C#. Possiamo scrivere più righe di codice all’interno della funzione sum(). Proprio come le espressioni lambda, ci sono due tipi di istruzioni lambda, la Func<T,T-return> che restituisce un valore e la Action<T>, che non restituisce un valore.

Creare funzioni inline con funzioni locali in C#

Funzioni locali sono le funzioni contenute in un’altra funzione in C#. È possibile accedere a una funzione locale solo dalla funzione che la racchiude. Le funzioni locali sono disponibili in 7.0 e versioni successive di C#. Le funzioni locali possono essere usate per fornire la funzionalità delle funzioni inline in C#. L’esempio di codice seguente mostra come creare una funzione inline con funzioni locali in C#.

using System;

namespace inline_function {
  class Program {
    static void Main(string[] args) {
      void sum(int a, int b) {
        Console.WriteLine(a + b);
      }
      sum(7, 11);
    }
  }
}

Produzione:

18

Abbiamo creato una funzione inline che restituisce la somma di 7 e 11 con le funzioni locali in C#. Dichiarare una funzione locale equivale a dichiarare una normale funzione convenzionale. Viene semplicemente dichiarato senza un identificatore di accesso e all’interno di un’altra funzione.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Articolo correlato - Csharp Function