Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

C# 13 estende le funzionalità di params

Con C# 13 Microsoft ha introdotto alcuni miglioramenti per il linguaggio, potenziando anche le feature della keyword params
C# 13 estende le funzionalità di params
Con C# 13 Microsoft ha introdotto alcuni miglioramenti per il linguaggio, potenziando anche le feature della keyword params
Link copiato negli appunti

La recente conferenza Build 2024 di Microsoft è stata anche l'occasione per presentare le nuove funzionalità di C# 13. Versione del linguaggio che si segnala in particolare per i miglioramenti apportati a params. Keyword per i tipi di parametri che fino a poco tempo fa era limitata agli array e che ora trova nuovi casi d'uso.

Quando viene utilizzata prima di un parametro, essa permette ad un metodo di accettare una lista (anche vuota) di valori separati da una virgola. Questi ultimi vengono quindi collocati in una raccolta associata ad un tipo specifico.

Analizziamo i cambiamenti portati da C# 13.

Cosa è params

Nativamente params viene utilizzata per specificare un parametro di metodo che accetta un numero variabile di argomenti. In questo modo è possibile passare una lista separata da virgole di argomenti di un tipo specificato a un metodo, senza dover creare esplicitamente un array. In questo modo un metodo può accettare un numero variabile di argomenti, con un beneficio per la flessibilità.

Le chiamate ai metodi diventano inoltre più semplici, soprattutto quando si deve operare con un gran numero di parametri. Esistono però dei vincoli: si può introdurre un solo parametro params per metodo e la parola chiave può essere impiegata solo per l'ultimo parametro nella lista dei parametri di un metodo.

Novità per params in C# 13

Come in parte già anticipato, in C# 13 params può essere qualsiasi tipo di raccolta compatibile con le espressioni per le raccolte, come per esempio List<T>, Span<T> e IEnumerable<T>. Possono inoltre essere utilizzati anche tipi di raccolta personalizzati attenendosi a delle apposite linee guida. Vediamo di seguito un semplice esempio:

void PrintList(params IEnumerable<string> list)
    => Console.WriteLine(string.Join(", ", list));
PrintList("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat");

Lanciando un comando di stampa si ottiene il risultato seguente:

"Sun, Mon, Tue, Wed, Thu, Fri, Sat"

È utile segnalare inoltre che i valori passati a params vengono convertiti implicitamente al tipo span. In questo modo viene selezionato il metodo più efficiente, in particolare quando i metodi differiscono per l'uso di span o array.

Ti consigliamo anche