Метод (програмиране): Разлика между версии
мРедакция без резюме |
Редакция без резюме |
||
Ред 1: | Ред 1: | ||
<div style="float:right; text-align:center; border: 1pt solid #AAA; margin-left: .5em"> |
<div style="float:right; text-align:center; border: 1pt solid #AAA; margin-left: .5em"> |
||
__TOC__</div> |
__TOC__</div> |
||
'''Метод ({{lang-en|method}})''' в [[Програмиране|програмирането]] е |
'''Метод ({{lang-en|method}})''' в [[Програмиране|програмирането]] е съставна част от една програма, която решава конкретен проблем. Може както да приема параметри така и да връща стойност. Целта на писането на дадена [[Компютърна програма|програма]] е решаването на дадена задача. За да бъде ефективно решена дадена задача в програмирането, тя се разделя на подзадачи, разработват се алгоритми за решение на тези подзадачи и накрая тези подзадачи се сглобяват в цялостна програма. Обособените парчета код, решаващи дадената подзадача се наричат [[Подпрограма|подпрограми]] (subroutines). В различните езици подпрограмите се срещат под други имена като функции (functions) или процедури (procedures). В [[C Sharp|C#]], те се наричат методи (methods). |
||
Най-простият пример за метод е "'''Main(…)'''", който винаги го декларираме между отварящата и затварящата скоба на нашия клас: |
Най-простият пример за метод е "'''Main(…)'''", който винаги го декларираме между отварящата и затварящата скоба на нашия клас: |
||
Ред 81: | Ред 81: | ||
} |
} |
||
</source> |
</source> |
||
==Основни правила за създаване и работа на един метод== |
|||
1. Всеки един метод трябва да решава само една точно определена задача. Обособяването като метод на парче код което решава няколко задачи (дори и свързани помежду си) води до затруднена четимост на програмата като цяло и до затруднено редактиране на кода.{{Br}} |
|||
2. Името на метода трябва да е описателно и да отговаря на това, което изпълнява дадения метод. Ако името на метода се получи прекалено дълго това означава че този метод не решава само една задача. Например метод с име GetUserName() е пример за име което описва съвсем ясно какво прави той. Ако при писане на метода стигнете до име от типа на GetUserNameAndPasswordAndCheckInDataBaseForUserDetails() това трябва да ви покаже, че "натоварвате" един метод с повече от една функция.{{Br}} |
|||
3. Един метод трябва да "знае" за "околната среда" точно толкова колкото е необходимо за да може да си свърши работата, и трябва да бъде видим само от методи, които биха могли да имат работа с него. Предаването на масив от данни или структура към метод, който има нужда само от един елемент от тези данни е грешен подход и трябва да се избягва.{{Br}} |
|||
4. Винаги когато в програмата нещо трябва да се извърши на повече от едно място то този код трябва да се обособи в отделен метод. По този начин евентуални бъдещи корекции ще трябва да се направят само в тялото на метода, а не на няколко места в основната програма, или в други методи. |
Версия от 14:09, 8 август 2013
Метод (Шаблон:Lang-en) в програмирането е съставна част от една програма, която решава конкретен проблем. Може както да приема параметри така и да връща стойност. Целта на писането на дадена програма е решаването на дадена задача. За да бъде ефективно решена дадена задача в програмирането, тя се разделя на подзадачи, разработват се алгоритми за решение на тези подзадачи и накрая тези подзадачи се сглобяват в цялостна програма. Обособените парчета код, решаващи дадената подзадача се наричат подпрограми (subroutines). В различните езици подпрограмите се срещат под други имена като функции (functions) или процедури (procedures). В C#, те се наричат методи (methods).
Най-простият пример за метод е "Main(…)", който винаги го декларираме между отварящата и затварящата скоба на нашия клас:
class HelloCSharp
{ // Отваряща скоба на класа
// Декларираме нашият метод между скобите на класа
static void Main(string[] args)
{
Console.WriteLine("Hello C#!");
}
} // Затваряща скоба на класа
Къде е позволено да декларираме метод
Всеки клас (class) има отваряща и затваряща фигурни скоби – "{" и "}", между който се пише програмният код. Даден метод може да съществува само ако е деклариран между отварящата "{" и затварящата "}" скоба на даден клас. Също така допълнително изискване, е методът да бъде деклариран извън имплементацията на друг метод. Ето и още един но по-сложен пример как се ползват методите и къде се декларират. Тази програма при въвеждане на две числа изкарва по-голямото, а кода за намиране на по-голямото число е изкаран в отделен метод (GetMaxCalculation):
using System;
internal class GetMax
{ // Отваряща скоба на класа
// Декларираме метода GetMaxCalculation и поставяме в него кода за намиране на по-голямото от две числа
internal static double GetMaxCalculation(double firstNumber, double secondNumber)
{
double theMaxNumber = firstNumber;
if (firstNumber < secondNumber)
{
theMaxNumber = secondNumber;
}
return theMaxNumber;
}
// Декларираме метода Main()
static void Main()
{
Console.Write("Enter number One: ");
double numberOne = double.Parse(Console.ReadLine());
Console.Write("Enter number Two: ");
double numberTwo = double.Parse(Console.ReadLine());
Console.WriteLine();
// Извикваме метода GetMaxCalculation и принтираме
Console.WriteLine("The Biggest Number is: {0}", GetMaxCalculation(numberOne, numberTwo));
Console.WriteLine();
}
} // Затваряща скоба на класа
Методите могат да бъдат декларирани с и без параметър. Горният пример е на метод деклариран с два параметъра, т.е. internal static double GetMaxCalculation(double firstNumber, double secondNumber). Пример на метод без параметри е:
static int countNumber = 10;
internal static void PrintFirstOddNumbers()
{
for (int number = 0; number < countNumber; number++)
{
if (number / 2 == 0)
{
Console.WriteLine(number);
}
}
}
Извикване на метод от друг клас
За да извикаме метод дефиниран в един клас от друг, то тогава той трябва да е или internal (достъпван само в съответното assembly) или public. Достъпът до метода става чрез името на класа. Private методи са видими само в съответният клас и не могат да бъдат достъпвани от друг.
using System;
class SimpleCalculations
{
double maxValue = GetMax.GetMaxCalculation(1.02, 3);
}
Основни правила за създаване и работа на един метод
1. Всеки един метод трябва да решава само една точно определена задача. Обособяването като метод на парче код което решава няколко задачи (дори и свързани помежду си) води до затруднена четимост на програмата като цяло и до затруднено редактиране на кода.
2. Името на метода трябва да е описателно и да отговаря на това, което изпълнява дадения метод. Ако името на метода се получи прекалено дълго това означава че този метод не решава само една задача. Например метод с име GetUserName() е пример за име което описва съвсем ясно какво прави той. Ако при писане на метода стигнете до име от типа на GetUserNameAndPasswordAndCheckInDataBaseForUserDetails() това трябва да ви покаже, че "натоварвате" един метод с повече от една функция.
3. Един метод трябва да "знае" за "околната среда" точно толкова колкото е необходимо за да може да си свърши работата, и трябва да бъде видим само от методи, които биха могли да имат работа с него. Предаването на масив от данни или структура към метод, който има нужда само от един елемент от тези данни е грешен подход и трябва да се избягва.
4. Винаги когато в програмата нещо трябва да се извърши на повече от едно място то този код трябва да се обособи в отделен метод. По този начин евентуални бъдещи корекции ще трябва да се направят само в тялото на метода, а не на няколко места в основната програма, или в други методи.