У Ц #, функција је начин паковања кода који нешто ради, а затим враћа вредност. За разлику од Ц, Ц ++ а неки други језици, функције не постоје саме по себи. Они су део ан објектно оријентисана приступ програмирању.
Програм за управљање прорачунским таблицама, на пример, може да садржи функцију сум () као дела објекта.
У Ц #, функција се може назвати чланском функцијом - она је члан класе - али та терминологија је преостала од Ц ++. Уобичајени назив је метода.
Метода инстанције
Постоје две врсте метода: примерачка метода и статичка метода. Овај увод покрива метод примерака.
Доњи пример дефинише једноставну класу и назива је Тест. Овај пример је једноставан конзолан програм, тако да је ово дозвољено. Обично прва класа која је дефинисана у датотеци Ц # мора бити класа облика.
Могуће је имати овај празан час тест класе {}, али није корисно. Иако изгледа празно, као и све класе Ц # наслеђује од Објекта који га садржи и укључује подразумевану поставку конструктор у главном програму.
вар т = нови тест ();
Овај код ради, али неће радити ништа када се покрене, осим што створи инстанцу т празног испитног разреда. Шифра испод додаје функцију, методу која исписује реч „Здраво“.
коришћење система;
намеспаце фунцек1
{
класа Тест
{
јавно неважеће СаиХелло ()
{
Конзола. ВритеЛине ("Здраво");
}
}
разредни програм
{
статиц воид Маин (стринг [] аргс)
{
вар т = нови тест ();
т. Кажи Здраво() ;
Конзола. РеадКеи ();
}
}
}
Овај пример кода укључује Конзола. РеадКеи (), па када се покрене, приказује прозор конзоле и чека кључни унос као што су Ентер, Спаце или Ретурн (а не тастери схифт, Алт или Цтрл). Без њега, отворио би прозор конзоле, издао "Здраво", а потом све затворио на трен.
Функција Кажи Здраво отприлике је једноставна функција као што то можете имати. То је јавна функција, што значи да је функција видљива изван класе.
Ако уклоните реч јавни и покушати саставити код не успева код грешке у компилацији "фунцек1.тест. СаиХелло () 'је недоступан због нивоа заштите. "Ако додате реч" приватно "где је реч јавна била и рекомпилирана, добићете исту грешку компајлирања. Само га вратите у „јавно“.
Реч празнина у функцији значи да функција не враћа никакве вредности.
Карактеристике дефиниције типичне функције
- Ниво приступа: јавни, приватни плус неки други
- Повратна вриједност>: воид или било који тип попут инт
- Назив методе: СаиХелло
- Било који параметар методе: за сада ниједан. Они су дефинисани у заградама () након назива методе
Код за дефиницију друге функције, МиАге (), је:
публиц инт МиАге ()
{
повратак 53;
}
Додајте то одмах после Кажи Здраво() метода у првом примеру и додајте ове две линије пре Конзола. РеадКеи ().
вар старост = т. Мојих година();
Конзола. ВритеЛине ("Давид има {0} година", старост);
Покретање програма сада даје ово:
Здраво
Давид има 53 године,
Тхе вар старост = т. Мојих година(); позив методу вратио вредност 53. То није најкориснија функција. Кориснији пример је функција Збир табеле са низом од интс, почетни индекс и број вредности које треба збројити.
Ово је функција:
јавни плутајући зброј (вредности инт [], инт стартиндек, инт ендиндек)
{
вар укупно = 0;
фор (вар индекс = стартиндек; индекс <= ендиндек; индекс ++)
{
укупно + = вредности [индекс];
}
укупан повратак;
}
Ево три случаја употребе. Ово је код који треба додати у Маин () и позвати се за тестирање функције Сум.
вар вредности = нев инт [10] {1, 2, 3, 4, 5, 6, 7, 8, 9,10};
Конзола. ВритеЛине (т. Збир (вредности, 0,2)); // Требало би да буде 6
Конзола. ВритеЛине (т. Збир (вредности, 0,9)); // треба да буде 55
Конзола. ВритеЛине (т. Збир (вредности, 9,9)); // треба бити 10 јер је 9. вриједност 10
Тхе Фор петља збраја вредности у опсегу стартиндек до ендиндек-а, тако да је за стартиндек = 0 и ендиндек = 2, то је збир 1 + 2 + 3 = 6. Док је за 9,9 то само додаје једну вредност [9] = 10.
Унутар функције, локална варијабла укупно се иницијализира на 0, а затим се додају релевантни дијелови вриједности матрице.