Функции с переменным числом аргументов private static int Sum(int a, int b) { return a + b; } static void Main() { int sum = Sum(1, 2); } 1 Функции.

Презентация:



Advertisements
Похожие презентации
1 A + B Операнд 1Операнд 2 Оператор Что такое выражение (expression) ? Что такое инструкция (statement) ? Операторы int max = (a > b) ? a : b;
Advertisements

С++. Шаблоны Сидоренко Иван. Введение Шаблоны обеспечивают поддержку обощенного программирования. Пример: template class Temp { T val; public: Temp( T);
Учебный курс Объектно-ориентированный анализ и программирование Лекция 7 Методы как средство реализации операций Лекции читает кандидат технических наук.
Class Date { private int year = 0; private int month = 0; private int day = 0; public void SetDate (int y, int m, int d) { year = y; month = m; day = d;
Test 5 Вопрос 1. В результате компиляции каких строк будет происходить ошибка компиляции: public class Main { public static void main(String[] args) {
Шаблоны в С++ Макаревич Л. Г.. Шаблоны функций Многие алгоритмы не зависят от типов данных. Многие алгоритмы не зависят от типов данных. #include using.
Перегрузка операторов x = a + b результат 1-й операнд2-й операнд оператор По количеству операндов операторы делятся на: унарные (один операнд) бинарные.
Test 17 Вопрос 1. public class TKO { public static void main(String[] args) { String s = "-"; Integer x = 343; long L343 = 343L; if (x.equals(L343)) s.
Test 10 Вопрос 1. public class Test implements Iterator { // 1 private List list = new ArrayList (); // 2 public void addList(T... ts) { Collections.addAll(list,
Test 4 Вопрос 1. public class TestOutput { public static void main(String[] args) throws IOException { PrintStream out = new PrintStream( new BufferedOutputStream(
В. М. Гуровиц, Глобальные функции объявляются в самой программе или в модуле и доступны из любого места программы Локальные функции.
1. a=? b=? c=? {int a, b, c; a=(b=2+3)/2 - 4+(c=5%2); printf("%d %d %d \n", a, b, c); }
Методы классов. Методы класса [атрибуты][модификаторы] {void|тип_результата_функции} имя_метода ([список_формальных_аргументов]) { тело метода} Список.
C++ templates. Синтаксис template void f(const T& value) { std::cout << "Value is: " << value << std::endl; } template struct Array { T data[n]; };
Test21 Вопрос 1. public class Test { void a1(Object... i){ System.out.println("[Object... i]"); } void a1(Integer... i){ System.out.println("[Integer...
Параллельная работа сокетов в C#. Потоки в C# using System; using System.Threading; public class ThreadExample { public static void ThreadProc() { for.
Test 3 Вопрос 1. 01:package test; 02: public class Test { 03: public static void main(String [] args) { 04: Test test = new Test(); 05: System.out.println(test.toString());}
Синтаксис языка Java. Символы и синтаксис Перевод строчки эквивалентен пробелу Регистр в именах различается.
Классы в С#. Перечисления С# Перечисление задает конечное множество возможных значений, которые могут получать объекты класса перечисление. [атрибуты][модификаторы]
1Georgiy KorneevJava Advanced / Новые возможности Java 5 Проблема 1 Метод void dump(Collection c) { for (Iterator i = c.iterator(); i.hasNext(); ) { Object.
Транксрипт:

Функции с переменным числом аргументов private static int Sum(int a, int b) { return a + b; } static void Main() { int sum = Sum(1, 2); } 1 Функции

int Sum(params int [] array) { int sum = 0; foreach (int n in array) { sum += n; } return sum; } int s1 = Sum(1, 2, 3); int s2 = Sum(1, 2, 3, 4, 5); 2 -возможно любое количество параметров -нет ограничений на тип параметров -params должен быть последним в списке аргументов, и в единственном экземпляре

int Min (int a, int b) { return (a < b ? a : b); } string Min (string a, string b) { return (a.Length < b.Length ? a : b); } float Min (float[] p) { … } Перегрузка функций (functions overload) 3 Min (1, 5); Min ("abc", "ab") Min (new float[]{0.1f, 0.2f, 0.3f});

4 bool IsLeapYear(DateTime dateTime) { return IsLeapYear(dateTime.Year); } bool IsLeapYear(int year) { return (year % 4 == 0 && year % 100 != 0 || year % 400 == 0); }

Перегрузка функций, содержащих params void func (params int [] p); void func (int x, int y); void func (int x, params int [] p); void func (int x, int y); func(3, 5); func(10, 20, 30); func(1, 2); 5

При выборе варианта функции, у использования params меньший приоритет: void func (params int [] p); void func (int x, int y); void func (int x, params int [] p); void func (int x, int y); func(3, 5); func(10, 20, 30); func(1, 2); Но еще меньший приоритет у приведения типа : void func(params int[] p); void func(uint x, uint y); func(1, 2); 6

7 Передача value-type аргументов в функцию long x = 5; long y = x; y = 1; x - ? private static void SetZero(float val) { val = 0f; } static void Main() { float f = 10f; SetZero(f); // f - ? }

8 Передача ref-type аргументов в функцию int[] arrayA = { 1, 2, 3 }; int[] arrayB = arrayA; arrayB[0] = 5; foreach (int i in arrayA) Console.WriteLine(i); private static void SetZero(float[] val) { for (int i = 0; i < val.Length; i++) val[i] = 0f; } static void Main() { float[] array = { 1f, 2f, 3f }; SetZero(array); foreach (int i in array) Console.WriteLine(i); }

Модификатор ref -позволяет передавать в функцию значение по ссылке 9 private static void Swap (ref int a, ref int b) { int tmp = a; a = b; b = tmp; } int x = 1, y = 2; Swap(ref x, ref y);

10 Передаче по ссылке параметра reference-type private static void SetZero(int[] p) { p[0] = 10; p = new int[] { 1, 2, 3 }; }... int[] array = new int[5]; SetZero(array); foreach (int i in array) { Console.Write("{0} ", i); }

11 private static void SetZero(ref int[] p) { p[0] = 10; p = new int[] { 1, 2, 3 }; }... int[] array = new int[5]; SetZero(ref array); foreach (int i in array) { Console.Write("{0} ", i); }

Модификатор out -предназначен для получения значений из метода (по ссылке) 12 void MinMax(int a, int b, out int min, out int max) { min = (a < b) ? a : b; max = (a > b) ? a : b; } int minValue; int maxValue; MinMax(100, 10, out minValue, out maxValue);

13 Значения параметров функций по умолчанию public void Show(string text, string caption, bool sound) { //... }... Show("Привет!", "", false);

14 void Show(string text, string caption = "", bool sound = false) { //... }... Show("Привет!"); Show("Привет!", "Сообщение"); Show("Привет!", "Сообщение", true);

15 Именованные параметры class Circle { public void Set(int x, int y, int r) { } Circle circle = new Circle(); circle.Set(x: 0, y: 0, r: 10); // circle.Set(x: 0, r: 10, y: 0);

16 class Circle { public void Set(int x=0, int y=0, int r=1) { } Circle circle = new Circle(); circle.Set(y: 0);