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

от Уикипедия, свободната енциклопедия
Изтрито е съдържание Добавено е съдържание
мРедакция без резюме
Редакция без резюме
Ред 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}})''' в [[Програмиране|програмирането]] е съставната част от дадена програма, която решава даден проблем. Може както да приема параметри така и да връща стойност. Целта на писането на дадена [[Компютърна програма|програма]] е решаването на дадена задача. За да бъде ефективно решена дадена задача в програмирането, задачата се разделя на подзадачи, разработват се решения на тези подзадачи и накрая се сглобяват в една програма. Решенията на подзадачите се наричат [[Подпрограма|подпрограми]] (subroutines). В различните езици подпрограмите се срещат под други имена като функции (functions) или процедури (procedures). В [[C Sharp|C#]], те се наричат методи (methods).
'''Метод ({{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. Винаги когато в програмата нещо трябва да се извърши на повече от едно място то този код трябва да се обособи в отделен метод. По този начин евентуални бъдещи корекции ще трябва да се направят само в тялото на метода, а не на няколко места в основната програма, или в други методи.