Метод (програмиране): Разлика между версии

мРедакция без резюме
В езика C# методите могат да бъдат "привързани" както към даден клас като цяло, така и към дадена инстанция (елемент) на дадения клас.Когато метода бъде дефиниран с ключовата дума static пред дефиницията си, то той е статичен. Този метод работи не върху конкретен обект от класа, а върху данни от целия клас.
Ако например имаме клас "автомобил" и направим статичен метод за изчисляване на разхода на гориво, то този метод няма да се интересува за кой точно автомобил става въпрос. Той ще очаква да му се подадат като параметри пробега и изразходените литри гориво, и ще връща резултата в литри на 100 км. Така всички обекти, наследници на клас "автомобил" ще могат да изчисляват разхода си, ползвайки този метод.
Особеност на статичните методи е това, че те могат да се извикват дори и да няма нито един обект от дадения клас, тъй както както казахме те са "вързани" към самия клас, а не към определен обект от него. Можем да извикаме Automobile.GetAverageMPG(miles, gallons) без да се интересуваме дали имаму вечеподаваме създаденопределен обект от клас Automobiles"автомобил". Както се забелязва от примера статичния метод се извиква като се укаже името на клас преди името на метода. Статичния метод може да се ползва след първо извикване на метод от дадения клас. Докато нямаме нито един обект от клас "автомобил", нямаме и никакви методи от този клас и опит да извикаме метода ще доведе до грешка при изпълнението на програмата.{{Br}}
Динамичните методи за разлика от статичните са "вързани" към точно определен обект на дадения клас, и извършват манипулации въз основа на данните на дадения обект, а не на класа като цяло.
Ако имаме два обекта - примерно carA и carB - от клас Automobiles, и всеки от обектите пази в себе си данни за последното показание на километража и заредените литри гориво, тогава извикването на carA.GetAverageMPG() и съответно на carB.GetAverageMPG() ще връща разхода на гориво за конкретния обект, ползвайки данните от обекта. Динамичните методи се извикват чрез добавяне на името на обекта преди името на метода.
Анонимен потребител