Wprowadzenie do funkcji w języku C #

W języku C # funkcja to sposób pakowania kodu, który coś robi, a następnie zwraca wartość. W przeciwieństwie do C C ++ a niektóre inne języki same nie istnieją. Są częścią obiektowy podejście do programowania.

Program do zarządzania arkuszami kalkulacyjnymi może na przykład zawierać funkcję sum () jako część obiektu.

W języku C # funkcję można nazwać funkcją składową - jest ona członkiem klasy - ale terminologia ta pozostała po C ++. Zwykła nazwa to metoda.

Metoda instancji

Istnieją dwa rodzaje metod: metoda instancji i metoda statyczna. To wprowadzenie obejmuje metodę instancji.

Poniższy przykład definiuje prostą klasę i nazywa ją Test. Ten przykład jest prostym programem konsolowym, więc jest to dozwolone. Zwykle pierwszą klasą zdefiniowaną w pliku C # musi być klasa formularza.

Można mieć taką pustą klasę Test klasy {}, ale to nie jest przydatne. Chociaż wygląda na pusty, to - podobnie jak wszystkie klasy C # - dziedziczy po obiekcie, który go zawiera i zawiera domyślny konstruktor w programie głównym.

instagram viewer
var t = nowy Test ();

Ten kod działa, ale nie zadziała, gdy zostanie uruchomiony, oprócz utworzenia wystąpienia t pustej klasy testowej. Poniższy kod dodaje funkcję, metodę, która generuje słowo „cześć”.

using System;
przestrzeń nazw funcex1
{
Test klasowy
{
public void SayHello ()
{
Konsola. WriteLine („Hello”);
}
}
Program zajęć
{
static void Main (string [] args)
{
var t = nowy Test ();
t. Powiedz cześć() ;
Konsola. Kluczem przeczytać() ;
}
}
}

Ten przykład kodu obejmuje Konsola. Kluczem przeczytać(), więc po uruchomieniu wyświetla okno konsoli i oczekuje na wpisanie klawisza, takiego jak Enter, Spacja lub Return (nie Shift, Alt lub Ctrl). Bez niego otworzy okno konsoli, wyświetli „Hello”, a następnie zamknie wszystko w mgnieniu oka.

Funkcja Powiedz cześć jest tak prostą funkcją, jak tylko możesz. Jest to funkcja publiczna, co oznacza, że ​​funkcja jest widoczna spoza klasy.

Jeśli usuniesz słowo publiczny i spróbuj skompilować kod kończy się niepowodzeniem z błędem kompilacji „funcex1.test. SayHello () 'jest niedostępny ze względu na poziom ochrony. ”Jeśli dodasz słowo„ private ”w miejscu, gdzie słowo public było i ponownie skompilujesz, otrzymasz ten sam błąd kompilacji. Po prostu zmień go z powrotem na „publiczny”.

Słowo unieważnić w funkcji oznacza, że ​​funkcja nie zwraca żadnych wartości.

Typowa charakterystyka definicji funkcji

  • Poziom dostępu: publiczny, prywatny oraz niektóre inne
  • Zwracana wartość>: void lub dowolny typ, taki jak int
  • Nazwa metody: SayHello
  • Dowolne parametry metody: na razie brak. Są one zdefiniowane w nawiasach kwadratowych () po nazwie metody

Kod definicji innej funkcji, MyAge (), to:

public int MyAge ()
{
zwrot 53;
}

Dodaj to zaraz po Powiedz cześć() Metoda w pierwszym przykładzie i dodaj te dwa wiersze wcześniej Konsola. Kluczem przeczytać().

var age = t. Mój wiek();
Konsola. WriteLine („David ma {0} lat”, wiek);

Uruchomienie programu wyświetla teraz to:

Witaj
David ma 53 lata,

The var age = t. Mój wiek(); wywołanie metody zwróciło wartość 53. To nie jest najbardziej przydatna funkcja. Bardziej użytecznym przykładem jest funkcja Sum arkusza kalkulacyjnego z tablicą ints, indeks początkowy i liczbę wartości do zsumowania.

To jest funkcja:

public float Sum (int [] wartości, int startindex, int endindex)
{
var ogółem = 0;
dla (var index = startindex; indeks <= endindex; indeks ++)
{
suma + = wartości [indeks];
}
zwrot ogółem;
}

Oto trzy przypadki użycia. Jest to kod, który należy dodać w Main () i wywołać w celu przetestowania funkcji Sum.

var var = new int [10] {1, 2, 3, 4, 5, 6, 7, 8, 9,10};
Konsola. WriteLine (t. Suma (wartości 0,2)); // Powinno być 6
Konsola. WriteLine (t. Suma (wartości 0,9)); // powinno mieć 55 lat
Konsola. WriteLine (t. Suma (wartości, 9,9)); // powinna wynosić 10, ponieważ 9. wartość to 10

The For pętla sumuje wartości z zakresu startindex do endindex, więc dla startindex = 0 i endindex = 2 jest to suma 1 + 2 + 3 = 6. Natomiast dla 9,9 dodaje tylko jedną wartość [9] = 10.

W ramach funkcji suma zmiennej lokalnej jest inicjowana na 0, a następnie dodawane są odpowiednie części wartości tablicy.