C #, funkcija yra kodas, įpakavimo būdas, kuris ką nors padaro ir tada grąžina vertę. Kitaip nei C, C ++ ir kai kurios kitos kalbos, funkcijos egzistuoja ne šiaip sau. Jie yra dalis orientuotas į objektą požiūris į programavimą.
Pvz., Į skaičiuoklių tvarkymo programą gali būti įtraukta suma (), kaip objekto dalis.
C # funkciją galima vadinti nario funkcija - tai yra klasės narys -, bet ši terminija liko iš C ++. Įprastas jo pavadinimas yra metodas.
Atvejo metodas
Yra dviejų tipų metodai: egzempliorių metodas ir statinis metodas. Šis įvadas apima egzempliorių metodą.
Žemiau pateiktas pavyzdys apibūdina paprastą klasę ir vadina ją Testas. Šis pavyzdys yra paprasta konsolių programa, todėl tai leidžiama. Paprastai pirmoji klasė, apibrėžta C # faile, turi būti formos klasė.
Galima turėti tokią tuščią klasę klasės testas {}, bet tai nėra naudinga. Nors jis atrodo tuščias, jis, kaip ir visos C # klasės, paveldi iš objekto, kuriame yra jo, ir apima numatytąjį konstruktorius pagrindinėje programoje.
var t = naujas testas ();
Šis kodas veikia, tačiau paleisdamas jis nieko nepadarys, išskyrus atvejo sukūrimą t tuščios bandymo klasės. Žemiau pateiktu kodu pridedama funkcija, metodas, išvedantis žodį „Sveiki“.
naudojant sistemą;
vardų sritis funcex1
{
klasės testas
{
negaliojanti „SayHello“ ()
{
Konsolė. „WriteLine“ („Labas“);
}
}
klasės programa
{
static void Main (eilutė [] args)
{
var t = naujas testas ();
t. Sakyk labas() ;
Konsolė. ReadKey ();
}
}
}
Šis kodo pavyzdys apima Konsolė. „ReadKey“ (), taigi, kai jis paleidžiamas, rodomas konsolės langas ir laukiama rakto įrašo, pavyzdžiui, „Enter“, „Space“ arba „Return“ (ne „Shift“, „Alt“ ar „Ctrl“ klavišai). Be jo būtų galima atidaryti konsolės langą, išvesti „Sveiki“ ir uždaryti viską akimirksniu.
Funkcija Sakyk labas yra maždaug tokia paprasta funkcija, kokią tik galite turėti. Tai yra viešoji funkcija, tai reiškia, kad funkcija yra matoma iš klasės pusės.
Jei pašalinsite žodį viešai ir pabandyk sudaryti kodą, jis nepavyksta dėl kompiliavimo klaidos „funcex1.test. „SayHello ()“ yra neprieinamas dėl savo apsaugos lygio. “Jei pridėsite žodį„ privatus “ten, kur buvo žodis viešas, ir perkompiliuokite, gausite tą pačią kompiliavimo klaidą. Tiesiog pakeiskite jį į „viešą“.
Žodis tuštuma funkcija reiškia, kad funkcija negrąžina jokių verčių.
Tipiškos funkcijos apibrėžimo charakteristikos
- Prieigos lygis: viešas, privatus ir kiti
- Grįžtamoji vertė>: negalioja arba bet koks tipas, pavyzdžiui, int
- Metodo pavadinimas: „SayHello“
- Bet kokie metodo parametrai: kol kas jo nėra. Jie yra apibrėžti skliausteliuose () po metodo pavadinimo
Kitos funkcijos „MyAge“ () apibrėžimo kodas yra:
viešas „MyAge“ ()
{
grįžti 53;
}
Pridėkite tai iškart po Sakyk labas() metodą pirmame pavyzdyje ir pridėkite šias dvi eilutes prieš Konsolė. „ReadKey“ ().
var amžius = t. Mano amžiaus();
Konsolė. „WriteLine“ („Deividui yra {0} metų", amžius);
Vykdant programą dabar gaunami šie duomenys:
Sveiki
Deividui yra 53 metai,
var amžius = t. Mano amžiaus(); paskambinus metodu buvo grąžinta 53 vertė. Tai nėra pati naudingiausia funkcija. Naudingesnis pavyzdys yra skaičiuoklės funkcija „Sum“ su masyvu ints, pradžios indeksas ir verčių skaičius, kuriuos reikia susumuoti.
Tai yra funkcija:
viešosios apyvartos suma (int [] reikšmės, int startindex, int endindex)
{
var viso = 0;
for (var index = startindex; rodyklė <= endindex; rodyklė ++)
{
iš viso + = reikšmės [rodyklė];
}
grąža iš viso;
}
Pateikiami trys naudojimo atvejai. Tai kodas, kurį reikia įtraukti į Main () ir paskambinti, norint išbandyti „Sum“ funkciją.
var reikšmės = naujas int [10] {1, 2, 3, 4, 5, 6, 7, 8, 9,10};
Konsolė. „WriteLine“ (t. Suma (reikšmės, 0,2)); // Turėtų būti 6
Konsolė. „WriteLine“ (t. Suma (reikšmės, 0,9)); // turėtų būti 55 metai
Konsolė. „WriteLine“ (t. Suma (reikšmės, 9,9); // turėtų būti 10, nes 9-oji vertė yra 10
„Už“ kilpa prideda reikšmes diapazone startindex prie endindex, taigi startindex = 0 ir endindex = 2 tai yra 1 + 2 + 3 = 6 suma. Tuo tarpu 9,9, tai tik prideda vieną reikšmę [9] = 10.
Funkcijos metu vietinio kintamojo suma yra inicializuojama iki 0 ir tada pridedamos atitinkamos masyvo reikšmių dalys.