TOC

This article has been localized into Romanian by the community.

Notiuni de baza:

Functii

O functie permite incorporarea unei bucati de cod sursa si apelul acesteia din alte parti ale aplicatiei. Foarte des este nevoie de repetarea acelorasi instructiuni, in locuri diferite, si pentru aceste situatii sunt folosite functiile. In C#, declararea unei functii arata astfel:

<visibility> <return type> <name>(<parameters>)
{
<function code>
}

Pentru a apela o functie, este suficient numele acesteia, o paranteza deschisa, parametrii (daca este cazul) si o paranteza inchisa. De exemplu:

DoStuff();

Continutul acestei functii DoStuff() ar putea fi acesta:

public void DoStuff()
{
    Console.WriteLine("I'm doing something...");
}

Primul cuvant-cheie, public, reprezinta vizibilitatea si este optional. Daca nu este specificat in mod explicit, functia va fi in mod implicit private. Vom discuta mai pe larg despre acestea mai tarziu. Urmatorul cuvant-cheie reprezinta tipul valorii generate de functie. Poate fi orice tip valid in C# sau, asa cum am avut mai sus, void. Acest void semaleaza faptul ca functia nu genereaza nicio valoare, fiind de fapt o subprocedura. Apoi, dupa numele functiei urmeaza o pereche de paranteze fara continut, ceea ce inseamna ca functia nu preia parametri. Cam banal, nu? Am putea schimba nitel:

public int AddNumbers(int number1, int number2)
{
    int result = number1 + number2;
    return result;
}

Am schimbat aproape totul. Functia genereaza acum un numar de tip integer, preia doi parametri (amandoi fiind numere integer) si in loc sa afiseze un mesaj pe ecran efectueaza o operatie aritmetica si intoarce rezultatul acesteia. Efectul includerii acestei functii in aplicatie va fi ca vom putea aduna doua numere integer, oriunde in cod, doar apeland functia in loc sa fie nevoie sa scriem codul pentru operatia efectuata de fiecare data. Acest exemplu nu ne scuteste de mult timp si efort pentru ca este doar ilustrativ, dar veti ajunge sa apreciati functiile cu cat utilizati mai mult C#-ul. Apelul acestei functii va arata astfel:

int result = AddNumbers(10, 5);
Console.WriteLine(result);

Asa cum am mentionat, aceasta functie defapt returneaza ceva, si trebuie, pentru ca noi ii spunem C#-ului ca asa trebuie sa faca. Cand declaram orice altceva inafara de void ca si tip de intoarcere al functiei, ne fortam sa returnam ceva. Poti incerca sa stergi linia de intoarcere din exemplu de deasupra si vei vedea compilatorul plangandu-se

'AddNumbers(int, int)': no toate liniile de cod returneză valoarea a

Compilatorul ne aduce aminte că avem o funcție care nu întoarce nimic, contrar cu ce am promis. Și compilatorul este destul de deștept! În loc să șteargă linia respectivă, încearcă ceva de genul:

public int AddNumbers(int number1, int number2)
{
    int result = number1 + number2;
    if(result > 10)
    {
return result;
    }
}

Vei vedea exact aceeasi eroare - Dar de ce? Pentru ca nu avem nicio garantie ca conditia nostra if va fi adevarata si ca vom returna ceva. Putem rezolva asta adaugand o alta valoare care sa fie returnata, o valoare "default", la sfarsitul functiei:

public int AddNumbers(int number1, int number2)
{
    int result = number1 + number2;
    if(result > 10)
    {
return result;
    }
    return 0;
}

Asta ne va rezolva problema pe care ne-am creat-o singuri, si iti va arata ca putem avea mai multe declaratii de returnare in functia noastra. Odata ce declaratia de retur este executata, functia este parasita si nu mai este executat alt cod din aceasta. In acest caz, inseamna ca atat timp cat rezultatul este mai mare decat 10, "return 0" nu se executa niciodata

This article has been deprecated!

This article has been re-organized and updated to better match the rest of the tutorial.

We suggest that you read this article instead: Methods (functions)


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!