Introduzione alle funzioni in C #

In C #, una funzione è un modo per impacchettare il codice che fa qualcosa e quindi restituisce il valore. A differenza di C, C ++ e alcune altre lingue, le funzioni non esistono da sole. Fanno parte di un orientato agli oggetti approccio alla programmazione.

Un programma per gestire i fogli di calcolo potrebbe includere una funzione sum () come parte di un oggetto, ad esempio.

In C #, una funzione può essere chiamata una funzione membro — è un membro di una classe — ma quella terminologia è rimasta dal C ++. Il solito nome è un metodo.

Il metodo di istanza

Esistono due tipi di metodi: metodo di istanza e metodo statico. Questa introduzione riguarda il metodo di istanza.

L'esempio seguente definisce una classe semplice e la chiama Test. Questo esempio è un semplice programma console, quindi è consentito. Di solito, la prima classe definita nel file C # deve essere la classe del modulo.

È possibile avere una classe vuota come questa Test di classe {}, ma non è utile. Sebbene appaia vuoto, come tutte le classi C #, eredita dall'oggetto che lo contiene e include un valore predefinito

instagram viewer
costruttore nel programma principale.

var t = new Test ();

Questo codice funziona, ma non farà nulla quando viene eseguito tranne creare un'istanza t della classe di test vuota. Il codice seguente aggiunge una funzione, un metodo che genera la parola "Ciao".

utilizzando il sistema;
spazio dei nomi funcex1
{
Test di classe
{
vuoto pubblico SayHello ()
{
Console. WriteLine ("Hello");
}
}
programma di classe
{
void statico Main (string [] args)
{
var t = new Test ();
t. Di Ciao() ;
Console. ReadKey ();
}
}
}

Questo esempio di codice include Console. ReadKey (), quindi quando viene eseguito, visualizza la finestra della console e attende l'immissione di un tasto come Invio, Spazio o A capo (non i tasti Maiusc, Alt o Ctrl). Senza di essa, si apriva la finestra della console, emetteva "Hello" e quindi chiudeva tutto in un batter d'occhio.

La funzione Di Ciao è una funzione tanto semplice quanto puoi avere. È una funzione pubblica, il che significa che la funzione è visibile dall'esterno della classe.

Se rimuovi la parola pubblico e prova a compilare il codice, non riesce con un errore di compilazione "funcex1.test. SayHello () 'è inaccessibile a causa del suo livello di protezione. "Se aggiungi la parola" privato "in cui si trovava la parola pubblica e ricompila, otterrai lo stesso errore di compilazione. Basta cambiarlo in "pubblico".

La parola vuoto nella funzione significa che la funzione non restituisce alcun valore.

Caratteristiche tipiche di definizione di funzione

  • Livello di accesso: pubblico, privato e alcuni altri
  • Valore restituito>: vuoto o qualsiasi tipo come int
  • Nome metodo: SayHello
  • Qualsiasi parametro del metodo: nessuno per ora. Questi sono definiti tra parentesi () dopo il nome del metodo

Il codice per la definizione di un'altra funzione, MyAge (), è:

public int MyAge ()
{
ritorno 53;
}

Aggiungilo subito dopo il Di Ciao() metodo nel primo esempio e aggiungere prima queste due righe Console. ReadKey ().

var age = t. La mia età();
Console. WriteLine ("David ha {0} anni", età);

L'esecuzione del programma ora genera questo:

Ciao
David ha 53 anni,

Il var age = t. La mia età(); la chiamata al metodo ha restituito il valore 53. Non è la funzione più utile. Un esempio più utile è la funzione Somma del foglio di calcolo con una matrice di int, l'indice iniziale e il numero di valori da sommare.

Questa è la funzione:

somma float pubblica (int [] valori, int startindex, int endindex)
{
var total = 0;
per (var index = startindex; index <= endIndex; Indice ++)
{
totale + = valori [indice];
}
ritorno totale;
}

Ecco tre casi d'uso. Questo è il codice da aggiungere in Main () e chiamare per testare la funzione Sum.

valori var = new int [10] {1, 2, 3, 4, 5, 6, 7, 8, 9,10};
Console. WriteLine (t. Somma (valori, 0,2)); // Dovrebbe essere 6
Console. WriteLine (t. Somma (valori, 0,9)); // dovrebbe essere 55
Console. WriteLine (t. Somma (valori, 9,9)); // dovrebbe essere 10 poiché il nono valore è 10

Il per ciclo continuo aggiunge i valori nell'intervallo startindex a endindex, quindi per startindex = 0 e endindex = 2, questa è la somma di 1 + 2 + 3 = 6. Considerando che per 9,9, aggiunge solo i valori uno [9] = 10.

All'interno della funzione, il totale della variabile locale viene inizializzato su 0 e quindi vengono aggiunte le parti pertinenti dei valori dell'array.