Come restituire più valori da un chiamante in C#

Come Restituire Piu Valori Da Un Chiamante In C



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

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

Un altro modo per restituire più valori in C# consiste nell'utilizzare i parametri out e in tal 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:







utilizzando il sistema;

Programma di classe pubblica
{
vuoto statico pubblico principale ( )
{
int [ ] numeri = { 3 , 1 , 4 , 1 , 5 , 9 , 2 , 6 , 5 , 3 } ;
int minimo, massimo;
OttieniMinMax ( numeri, fuori min, fuori max ) ;
Console.WriteLine ( $ 'Min: {min}, Max: {max}' ) ;
}

void statico pubblico GetMinMax ( int [ ] numeri, out int min, out int max )
{
minimo = numeri [ 0 ] ;
massimo = numeri [ 0 ] ;

per ( intero io = 1 ; io < numeri.Lunghezza; io++ )
{
Se ( numeri [ io ] < min )
{
minimo = numeri [ io ] ;
}
Se ( numeri [ io ] > max )
{
massimo = numeri [ io ] ;
}
}
}
}


In questo il metodo GetMinMax accetta un array di numeri interi come input insieme a due parametri out per min e max. La parola chiave out viene utilizzata per indicare che queste variabili verranno utilizzate per memorizzare i valori di output dal metodo.



All'interno del metodo, le variabili min e max vengono inizializzate sul primo valore nell'array di input. Il metodo esegue quindi l'iterazione dei valori rimanenti nell'array, aggiornando le variabili min e max secondo necessità in base ai valori rilevati.



Infine, quando il metodo viene completato, i valori aggiornati per min e max vengono restituiti tramite i parametri out. Nel metodo Main, questi valori di output vengono stampati nella console usando il metodo WriteLine.





L'utilizzo 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 dei parametri out può rendere il codice più difficile da leggere e comprendere, in particolare quando si ha a che fare con codice più complesso ed è generalmente consigliabile utilizzare 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# è utilizzare una classe personalizzata e creare una classe che contenga proprietà o campi per ogni valore che si desidera restituire e quindi restituire un'istanza della classe dal metodo, ecco un esempio:

utilizzando il sistema;

spazio dei nomi MyNamespace
{
classe pubblica MinMaxResult
{
pubblico int min { Ottenere; impostato ; }
pubblico int max { Ottenere; impostato ; }
}
classe statica pubblica MinMaxCalculator
{
public static MinMaxResult GetMinMax ( int [ ] numeri )
{
int min = numeri [ 0 ] ;
int max = numeri [ 0 ] ;
per ( intero io = 1 ; io < numeri.Lunghezza; io++ )
{
Se ( numeri [ io ] < min )
{
minimo = numeri [ io ] ;
}
Se ( numeri [ io ] > max )
{
massimo = numeri [ io ] ;
}
}
ritorno nuovo MinMaxResult { Min = minimo, Max = massimo } ;
}
}
programma di classe
{
vuoto statico principale ( corda [ ] arg )
{
int [ ] numeri = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 } ;
Risultato MinMaxResult = MinMaxCalculator.GetMinMax ( numeri ) ;
Console.WriteLine ( $ 'Min: {risultato.Min}, massimo: {risultato.Max}' ) ;
}
}
}


Questo codice C# definisce uno spazio dei nomi denominato 'MyNamespace' che contiene due classi: 'MinMaxResult' e 'MinMaxCalculator'.

La classe 'MinMaxResult' ha due proprietà: 'Min' e 'Max', che vengono utilizzate per memorizzare rispettivamente i valori minimo e massimo.

La classe 'MinMaxCalculator' è dichiarata come statica e ha un unico metodo denominato 'GetMinMax' che accetta un array di numeri interi come input. Questo metodo utilizza un ciclo per scorrere l'array e trovare i valori minimo e massimo. Quindi crea una nuova istanza della classe 'MinMaxResult' e inizializza le sue proprietà 'Min' e 'Max' con i valori trovati prima di restituirlo come output del metodo.

Infine, la classe “Program” contiene un metodo statico denominato “Main”, che è il punto di ingresso del programma e in questo metodo viene inizializzato un array di interi passato al metodo “GetMinMax” della classe “MinMaxCalculator” per ottenere i valori minimo e massimo.

Conclusione

La restituzione di più valori a un chiamante di metodo in C# può essere una funzionalità importante quando si lavora con dati o calcoli complessi. Comprendendo le diverse tecniche disponibili per restituire più valori, come i parametri out e le classi personalizzate, puoi scegliere l'approccio migliore per la tua situazione specifica. L'utilizzo di queste tecniche può rendere il codice più efficiente, più facile da leggere e, in ultima analisi, migliorare le prestazioni dell'applicazione.