Come restituire più valori da un chiamante in C#

Come restituire più valori da un chiamante in C#

Quando si lavora con C#, potrebbero esserci situazioni in cui è necessario restituire più valori da un metodo al chiamante. Questo può essere un evento comune quando si tratta di dati o calcoli complessi e in questo articolo, esploreremo alcune delle tecniche più comuni per restituire più valori in C#.

    • Usando il parametro
    • Utilizzando una classe personalizzata

1: come restituire più valori a un chiamante di metodo in C# utilizzando i parametri

Un altro modo per restituire più valori in C# è utilizzare i parametri e in quel caso un parametro Out è una variabile che viene passata a un metodo per riferimento e può essere utilizzata per restituire un valore dal metodo, ecco un esempio:

usando il sistema;
Programma di classe pubblica

Public Static Void Main ()

int [] numeri = 3, 1, 4, 1, 5, 9, 2, 6, 5, 3;
int min, max;
Getminmax (numeri, out min, out max);
Console.WriteLine ($ "min: min, max: max");

public static void getminmax (int [] numeri, out int min, out int max)

min = numeri [0];
max = numeri [0];
per (int i = 1; i < numbers.Length; i++)

if (numeri [i] < min)

min = numeri [i];

if (numeri [i]> max)

max = numeri [i];




In questo il metodo getminmax prende un array intero come input insieme a due parametri per min e max. La parola chiave out viene utilizzata per indicare che queste variabili verranno utilizzate per archiviare i valori di output dal metodo.

All'interno del metodo, le variabili Min e Max sono inizializzate al primo valore nell'array di input. Il metodo si esegue quindi attraverso i valori rimanenti nell'array, aggiornando le variabili Min e Max, in base ai valori incontrati.

Infine, quando il metodo si completa, i valori aggiornati per Min e Max vengono restituiti tramite i parametri OUT. Nel metodo principale, questi valori di output sono stampati sulla console usando il metodo WriteLine.

L'uso della parola chiave out per restituire più valori può essere una tecnica utile in situazioni in cui è necessario restituire più di un valore da un metodo. Tuttavia, vale la pena notare che l'uso di parametri out può rendere il codice più difficile da leggere e comprendere, in particolare quando si tratta di un codice più complesso ed è generalmente un'idea migliore usare questa tecnica con parsimonia e solo quando necessario.

2: come restituire più valori a un chiamante di metodo in C# utilizzando una classe personalizzata

Un terzo modo per restituire più valori in C# è utilizzando una classe personalizzata e per creare una classe che contiene proprietà o campi per ogni valore che si desidera restituire e quindi restituire un'istanza della classe dal tuo metodo, ecco un esempio:

usando il sistema;
Spazio nomi mynamespace

Classe pubblica MinmaxResult

public int min get; impostato;
public int max get; impostato;

classe statica pubblica Minmaxcalculator

Public Static MinmaxResult getminmax (int [] numeri)

int min = numeri [0];
int max = numeri [0];
per (int i = 1; i < numbers.Length; i++)

if (numeri [i] < min)

min = numeri [i];

if (numeri [i]> max)

max = numeri [i];


restituisce nuovo minmaxResult min = min, max = max;


Programma di classe

statico void main (string [] args)

int [] numeri = 1, 2, 3, 4, 5, 6, 7, 8, 9;
Risultato minmaxResult = MinMaxCalculator.Getminmax (numeri);
Console.WriteLine ($ "min: risultato.Min, max: risultato.Max ");



Questo codice C# definisce uno spazio dei nomi chiamato "MyNamespace" che contiene due classi: "MinmaxResult" e "MinMaxCalculator".

La classe "MinmaxResult" ha due proprietà: "min" e "max", che vengono utilizzate per archiviare rispettivamente i valori minimi e massimi.

La classe "MinMaxCalculator" è dichiarata statica e ha un singolo metodo chiamato "Getminmax" che prende una matrice di numeri interi come input. Questo metodo utilizza un ciclo per iterare attraverso l'array e trovare i valori minimi e massimi. Crea quindi una nuova istanza della classe "MinmaxResult" e inizializza le sue proprietà "min" e "max" con i valori trovati prima di restituirla come output del metodo.

Infine, la classe "Programma" contiene un metodo statico chiamato "Main", che è il punto di ingresso del programma e in questo metodo una serie di numeri interi viene inizializzato e passato al metodo "getminmax" della classe "MinmaxCalculator" per ottenere i valori minimi e massimi.

Conclusione

Restituzione di più valori a un chiamante di metodo in C# può essere una caratteristica importante quando si lavora con dati o calcoli complessi. Comprendendo le diverse tecniche disponibili per restituire più valori, come i parametri e le classi personalizzate, è possibile scegliere l'approccio migliore per la tua situazione specifica. L'uso di queste tecniche può rendere il tuo codice più efficiente, più facile da leggere e infine migliorare le prestazioni dell'applicazione.