Какой смысл C# Параметры метода? - PullRequest
0 голосов
/ 18 января 2020

Я новичок в кодировании, и мне любопытно, почему параметры метода полезны. Какой смысл им, когда я могу создать переменную внутри метода, которая должна выполняться при вызове? Какой смысл давать ему этот параметр?

Ответы [ 6 ]

1 голос
/ 18 января 2020

Параметры могут быть использованы для нескольких разных вещей. Наиболее практичное использование - избегать повторения, как сказал Фонг в своем ответе. Например, если я хочу напечатать одну строку красного текста на консоли, я мог бы сделать это:

Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("This is some red text");
Console.ResetColor();

Console.WriteLine("This is some boring white text");

Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("And this is some more red text!");
Console.ResetColor();

ИЛИ Я мог бы создать функцию с входным параметром для текста, который будет отображаться красным, как это :

static void WriteRed(string output){
    Console.ForegroundColor = ConsoleColor.Red;
    Console.WriteLine(output);
    Console.ResetColor();
}

WriteRed("This is some red text");
Console.WriteLine("This is some boring white text");
WriteRed("And this is some more red text!");

Как видите, мы превратили эту задачу из задачи в 3 строки в задачу из 1 строки, которая была бы невозможна без входных параметров. Это будет очень полезно в случае, когда нам нужно писать красным цветом где-либо еще в программе.

Очевидно, что это довольно простой пример, а в более сложных программах это может легко сэкономить более 100 строк.

Другое использование для организации. Допустим, у вас есть программа, которая принимает пользовательский ввод и обрабатывает его некоторым образом. Используя функции с входными параметрами, вы можете поместить сбор пользовательского ввода в один файл .cs, а обработку - в другой.

Параметры также очень полезны в конструкторах, которые, если вы еще не получили, являются просто функции, которые вызываются при создании нового экземпляра объекта.

1 голос
/ 18 января 2020

В вашем примере, скажем, вы хотели поздороваться не только с Майком. Вы можете сделать это:

SayHi("Mike");
SayHi("Amy");
SayHi("Sam");

Давайте сделаем еще один шаг вперед. Вы можете создать коллекцию имен и сказать привет любому числу людей

List<string> people = new List<string> { "Mike", "Amy", "Sam", "John", "Mindy" };
foreach (string person in people) 
{
    SayHi(person);
}

Как видите, функцию SayHi() можно использовать повторно, потому что вы можете вызывать ее любое количество раз.

И для еще одного шага, скажем, позже вы поняли, что не хотите говорить "Hello " + name, вы хотели сказать, "Hello, " + name + ". How are you?", тогда вам нужно будет только изменить код в одном месте и все времена, когда он использовался, будут затронуты.

Добавление параметра - это способ сказать: «Этот фрагмент кода для повторного использования полезен только до тех пор, пока у него есть это значение для использования». В вашем примере кода значение, которое нужно SayHi, является именем, потому что оно должно знать, кому передать привет.

0 голосов
/ 18 января 2020

What's the point to them when I can create a variable within the method which should execute when I call on it

Если вы создаете переменную внутри метода, вы можете присвоить ей только одно значение во время написания кода, но если вы передадите ее в качестве параметра, вы можете динамически назначить любое значение, которое вы Если при последующем вызове метода, даже значения, которое вы не знаете во время написания кода, это значение может быть назначено во время выполнения.

Кроме того, методы используются для инкапсуляции некоторой логики c Допустим, вам нужен метод для расчета площади круга, равной π r2, вы знаете значение PI π, потому что это постоянная, которая почти равна 3,14, но вы не знаете значение радиуса r потому что он изменяется от круга к другому, поэтому вам нужно передать его методу в качестве параметра.

0 голосов
/ 18 января 2020

C# - это объектно-ориентированный язык программирования


Объектно-ориентированное программирование, или OOP, - это подход к решению проблем, когда выполняются все вычисления используя объекты. Объект - это компонент программы, который знает, как выполнять определенные действия и как взаимодействовать с другими элементами программы.

Как только вы создали объекты, вы хотите, чтобы они могли что-то делать. Вот где приходят методы. Метод объектно-ориентированного программирования - это процедура, связанная с классом. Метод определяет поведение объектов, которые создаются из класса. Другой способ сказать, что метод - это действие, которое может выполнить объект. Ассоциация между методом и классом называется связыванием .

Рассмотрим пример объекта типа ' person , созданного с использованием класса person. Метод , связанный с этим классом, может состоять из таких вещей, как ходьба и вождение . Методы иногда путают с функциями, но они различны. Функция - это комбинация инструкций, которые объединяются для достижения определенного результата. Функция обычно требует некоторого ввода (называемого arguments / parameters ), а возвращает некоторые результаты . Например, рассмотрим пример вождения автомобиля. Чтобы определить пробег, вам нужно выполнить расчет, используя пройденное расстояние и количество используемого топлива. Вы можете написать функцию, чтобы сделать этот расчет. Входящие в функцию аргументы: расстояние и расход топлива , а результатом будет пробег. Каждый раз, когда вы хотите определить пробег , вы просто вызываете функцию для выполнения расчета.

Чем это отличается от метода? Функция независима и не связана с классом. Вы можете использовать эту функцию в любом месте своего кода, и вам не нужен объект для ее использования.

0 голосов
/ 18 января 2020

Вы должны прочитать основы OOP (объектно-ориентированное программирование). Это поможет вам понять основные принципы, такие как перегрузка, переопределение и наследование методов, которые обычно используются. Вместо написания нескольких однострочных операторов вы можете создавать функции, которые представляют собой структурированный, четко написанный код. Кроме того, следуя различным шаблонам проектирования, это позволяет нам дать функциям возможность обрабатывать отдельные обязанности и сделать все более чистым imo!

https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/object-oriented-programming

0 голосов
/ 18 января 2020

Какой смысл давать ему этот параметр?

Он помогает вам Reuse выполнять некоторые действия с одинаковыми шагами. Не повторяйте себя

Как видите, вы просто передаете параметр, а затем внутри метода вам что-то понадобится ("Hello" + переданный параметр)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...