Файл: Методы. Способы передачи параметров. Преподаватель Кривошеина А. В.pptx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 04.02.2024

Просмотров: 47

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Методы. Способы передачи параметров.

Преподаватель Кривошеина А.В.

ЧУО «Колледж бизнеса и права»

Определение метода

Синтаксис метода

[ атрибуты ] [ спецификаторы ] тип имя ( [ параметры ] )

{

тело_метода

}

метод Main

Пример метода

class Program

{

{

}

{

}

}

Вызов метода

Вызов метода SayHello:

using System;

namespace HelloApp

{

class Program

{

{

}

{

SayHello();

}

}

}

Hello –консольный вывод

Возвращение значения

Примеры методов с возвращаемым значением:

static int Sum()

{

int x = 2;

int y = 3;

int z = x + y;

return z;

}

{

return "Hello";

}

class Program

class Program

{

{

string message = Hello();

int s = Sum();

Console.WriteLine(message); // Hello

Console.WriteLine(s); // 5

}

}

Выход из метода

{

int hour = 23;

if (hour > 22)

{

return;

}

else

{

}

}

Сокращенная запись методов

{

}

static void SayHello() => Console.WriteLine("Hello");

Подобным образом мы можем сокращать и методы, которые возвращают значение

{

return "Hello";

}

Параметры методов

Параметры методов

{

int a = 25;

int b = 35;

int result = Sum(a, b);

Console.WriteLine(result); // 60

result = Sum(b, 45);

Console.WriteLine(result); // 80

result = Sum(a + b + 12, 18);

Console.WriteLine(result); // 90

}

Необязательные параметры

Именованные параметры

{

}

{

OptionalParam(x:2, y:3);

//z использует значение по умолчанию

OptionalParam(y:2, x:3, s:10);

}

Передача параметров по ссылке и значению

Передача параметров по значению

class Program

{

{

Sum(10, 15); // параметры передаются по значению

}

static int Sum(int x, int y)

{

return x + y;

}

}

Передача параметров по ссылке и модификатор ref

{

int x = 10;

int y = 15;

Addition(ref x, y); // вызов метода

Console.WriteLine(x); // 25

}

// параметр x передается по ссылке

static void Addition(ref int x, int y)

{

x += y;

}

Отличия

Пример передачи параметра по значению

{

int a = 5;

IncrementVal(a);

Console.WriteLine($"Переменная a после передачи по значению равна {a}");

}

static void IncrementVal(int x)

{

x++;

Console.WriteLine($"IncrementVal: {x}");

}

Пример передачи параметра по ссылке

static void Main(string[] args)

{

int a = 5;

IncrementRef(ref a);

Console.WriteLine($"Переменная a после передачи ссылке равна = {a}");

}

static void IncrementRef(ref int x)

{

x++;

Console.WriteLine($"IncrementRef: {x}");

}

Выходные параметры. Модификатор out

Использование в программе:

{

int x = 10;

int z;

Sum(x, 15, out z);

Console.WriteLine(z);

}

{

int x = 10;

int area;

int perimetr;

GetData(x, 15, out area, out perimetr);

Console.WriteLine("Площадь : " + area);

Console.WriteLine("Периметр : " + perimetr);

}

static void GetData(int x, int y, out int area, out int perim)

{

area= x * y;

perim= (x + y)*2;

}

Вместо:

Входные параметры. Модификатор in

Пример (входные параметры с модификатором in)

static void GetData(in int x, int y, out int area, out int perim)

{

// x = x + 10; – нельзя изменить значение параметра x

y = y + 10;

area = x * y;

perim = (x + y) * 2;

}

static void Addition(params int[ ] integers)

{

int result = 0;

for (int i = 0; i < integers.Length; i++)

{

result += integers[i];

}

}

{

Addition(1, 2, 3, 4, 5);

int[ ] array = new int[ ] { 1, 2, 3, 4, 5, 6, 7 };

Addition(array);

Addition();

}

Вопросы и упражнения

Дан следующий метод:

Дан следующий метод:

Домашнее задание:

Дан следующий метод:

  • Дан следующий метод:
  • static void Display(params int[ ] numbers)

    {

    int result = 0;

    {

    }

    }

  • Какие из следующих вариантов представляют правильный способ вызова данного метода (правильных вариантов может быть несколько):
  • Display();
  • Display(1);
  • Display(1, 2);
  • Display(1, 2, 3);
  • Display(new int[ ] { 1, 2, 3, 5 });

Дан следующий метод:

  • Дан следующий метод:
  • static void Display(int[ ] numbers)

    {

    int result = 0;

    {

    }

    }

  • Какие из следующих вариантов представляют правильный способ вызова данного метода (правильных вариантов может быть несколько):
  • Display();
  • Display(1);
  • Display(1, 2);
  • Display(1, 2, 3);
  • Display(new int[ ] { 1, 2, 3, 5 });

Домашнее задание:

  • Павловская Т. А. «C#. Программирование на языке высокого уровня», стр.106–114;
  • Троелсен Э. «Язык программирования C# 5.0 и платформа .NET 4.5», стр.146–156.