Introducere în funcțiile în C #

În C #, o funcție este un mod de ambalare a codului care face ceva și apoi returnează valoarea. Spre deosebire de C, C ++ și în alte limbi, funcțiile nu există de la sine. Ei fac parte dintr-un an orientate-obiect abordarea programării.

Un program pentru gestionarea foilor de calcul ar putea include o funcție sumă () ca parte a unui obiect, de exemplu.

În C #, o funcție poate fi numită funcție de membru - este membră a unei clase - dar această terminologie este rămasă de la C ++. Numele obișnuit pentru acesta este o metodă.

Metoda Instanței

Există două tipuri de metode: metoda instanței și metoda statică. Această introducere acoperă metoda instanței.

Exemplul de mai jos definește o clasă simplă și o numește Test. Acest exemplu este un program simplu de consolă, deci acest lucru este permis. De obicei, prima clasă definită în fișierul C # trebuie să fie clasa de formular.

Este posibil să ai o clasă goală ca asta Test de clasă {}, dar nu este util. Deși pare gol, ca toate clasele C #, moștenește obiectul care îl conține și include o valoare implicită constructor în programul principal.

instagram viewer
var t = Test nou ();

Acest cod funcționează, dar nu va face nimic atunci când este executat, cu excepția creării unei instanțe T din clasa de testare goală. Codul de mai jos adaugă o funcție, o metodă care emite cuvântul „Bună ziua”.

folosind Sistem;
spațiul de nume funcex1
{
Test de clasă
{
public void SayHello ()
{
Consolă. WriteLine („Bună ziua”);
}
}
Programul clasei
{
static void Main (string [] args)
{
var t = Test nou ();
T. Spune buna() ;
Consolă. ReadKey ();
}
}
}

Acest exemplu de cod include Consolă. ReadKey ()Așadar, atunci când rulează, afișează fereastra consolei și așteaptă o intrare de cheie, cum ar fi Enter, Space sau Return (nu tastele Shift, Alt sau Ctrl). Fără el, ar deschide fereastra consolei, ar fi „Salutat” și apoi ar închide totul din clipirea unui ochi.

Functia Spune buna este o funcție cât se poate de simplă. Este o funcție publică, ceea ce înseamnă că funcția este vizibilă din afara clasei.

Dacă eliminați cuvântul public și încearcă să compila codul, eșuează cu o eroare de compilare „funcex1.test. SayHello () 'este inaccesibil datorită nivelului său de protecție. "Dacă adăugați cuvântul" privat "unde a fost cuvântul public și recompilați, veți primi aceeași eroare de compilare. Schimbă-l înapoi în „public”.

Cuvantul vid în funcție înseamnă că funcția nu returnează nicio valoare.

Caracteristici tipice de definire a funcției

  • Nivel de acces: public, privat plus alte altele
  • Valoarea returnării>: void sau de orice tip, cum ar fi int
  • Numele metodei: SayHello
  • Orice parametri de metodă: niciunul deocamdată. Acestea sunt definite între paranteze () după numele metodei

Codul pentru definirea unei alte funcții, MyAge (), este:

public int MyAge ()
{
retur 53;
}

Adăugați asta imediat după Spune buna() metoda din primul exemplu și adăugați aceste două rânduri înainte Consolă. ReadKey ().

vârsta var = t. Vârsta mea();
Consolă. WriteLine („David are {0} ani”, vârstă);

Rularea programului produce acum acest lucru:

buna
David are 53 de ani,

vârsta var = t. Vârsta mea(); apel la metodă a returnat valoarea 53. Nu este cea mai utilă funcție. Un exemplu mai util este funcția Suma de foi de calcul cu o serie de Ints, indicele de început și numărul de valori care trebuie însumate.

Aceasta este funcția:

public float Sum (valori [int [], int startindex, int endindex)
{
var total = 0;
for (var index = startindex; index <= endindex; index ++)
{
total + = valori [index];
}
returnare totală;
}

Iată trei cazuri de utilizare. Acesta este codul de adăugat în Main () și apel pentru testarea funcției Suma.

valori var = new int [10] {1, 2, 3, 4, 5, 6, 7, 8, 9,10};
Consolă. WriteLine (t. Suma (valori, 0,2)); // Ar trebui să fie 6
Consolă. WriteLine (t. Suma (valori, 0,9)); // ar trebui să aibă 55
Consolă. WriteLine (t. Suma (valori, 9,9)); // ar trebui să fie 10, deoarece a noua valoare este 10

Pentru buclă adaugă valorile din intervalul startindex la endindex, deci pentru startindex = 0 și endindex = 2, aceasta este suma de 1 + 2 + 3 = 6. Întrucât pentru 9,9, doar adaugă valorile unice [9] = 10.

În cadrul funcției, totalul variabilei locale este inițializat la 0 și apoi se adaugă părțile relevante ale valorii matricei.