Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Анонимный метод и лямбда выражение

Содержание

Анонимный метод и лямбда выражение// Объявление делегата-типа:delegate int MyDel( int z );// Анонимный метод в объявлении экземпляра делегата:MyDel del = delegate(int x) { return x * x; } ; // Лямбда выражение в объявлении экземпляра
В.В. Подбельский Иллюстрации к курсу лекций по дисциплине «Программирование» Лямбда-выражения в методах класса Array Анонимный метод и лямбда выражение// Объявление делегата-типа:delegate int MyDel( int z );// Синтаксис лямбда выраженийСинтаксис полного объявления лямбда-выражения:(спецификация параметров) => { операторы }delegate int using System;class Lambda {delegate bool Del(int i);static void Main()  { class Params_Lambda {delegate void myDel(params int[] g);static void Main( )  { class Captured  {delegate void DelegateType(int Param); static void Main() {DelegateType variable; Захват изменяемых переменныхdelegate void Del( );static void Main( ) {  Del Захват временных изменяемых переменныхdelegate void Del( );. . . .Del [] arDel Захват изменяемых переменных в foreachdelegate void Del( );. . . .Del [] Некоторые статические методы класса Array с параметрами-делегатами Array.ConvertAll( )Array.ForEach( )Array.Sort( ) Array.Find( Метод Array.ConvertAllpublic static TOutput[] ConvertAll(	TInput[] array,	Converter converter )TInput, Toutput – типизирующие параметры;Converter Применение лямбда-выражения в Array.ConvertAll ( )    int[ ] fib Метод Array.ForEach( )public static void ForEach(T[] array, Примеры использования метода Array.ForEach( )int[] fib = new int[] { 0, 1, Метод Array.Sort( )public static void Sort(T[] array,		Comparison comparison)T – типизирующий параметр;Comparison - Пример использования метода Array.Sort( )int[ ] temp = new int[ ] { Метод Array.Find( )public static T Find( T[ ] array, Predicate match)T – Пример использования метода Array.Find( )int[ ] temp = new int[ ] { Метод Array.FindAll( )public static T [ ] FindAll( T[ ] array, 				Predicate Пример использования метода Array.FindAll( )int[ ] temp = new int[] { 10,
Слайды презентации

Слайд 2 Анонимный метод и лямбда выражение
// Объявление делегата-типа:
delegate int

Анонимный метод и лямбда выражение// Объявление делегата-типа:delegate int MyDel( int z

MyDel( int z );

// Анонимный метод в объявлении экземпляра

делегата:
MyDel del = delegate(int x) { return x * x; } ;

// Лямбда выражение в объявлении экземпляра делегата:
MyDel del2 = (int x) => { return x * x; } ;






Слайд 3 Синтаксис лямбда выражений
Синтаксис полного объявления лямбда-выражения:
(спецификация параметров) =>

Синтаксис лямбда выраженийСинтаксис полного объявления лямбда-выражения:(спецификация параметров) => { операторы }delegate

{ операторы }

delegate int MyDel( int z );

// Объявление делегата-типа

Соответствующие делегату MyDel лямбда-выражения
С телом-оператором:
(int x) => { return x * x; } ;
(x) => { return 2 * x ; } ;
x => { return x + 1; } ;
С телом в виде выражения:
x => x * 10;

Слайд 4 using System;
class Lambda {
delegate bool Del(int i);
static void

using System;class Lambda {delegate bool Del(int i);static void Main() { Del

Main() {
Del del = new Del((z)

=> z > 0 ? true : false);
Console.WriteLine("Sign: del(-5) = " + del(-5));
del = c => { return c % 2 == 0 ? true : false; } ;
Console.WriteLine("Parity: del(4) = " + del(4));
}
}

Результат выполнения программы:
Sign: del(-5) = False
Parity: del(4) = True


Слайд 5 class Params_Lambda {
delegate void myDel(params int[] g);
static void

class Params_Lambda {delegate void myDel(params int[] g);static void Main( ) {

Main( ) {
int prod = 1;


myDel mydel = new myDel((int[] g) =>
{ int sum = 0;
foreach (int f in g)
{ sum += f; prod *= f; }
Console.WriteLine("Сумма параметров = " + sum);
});
mydel(5,1,2,3);
} }

Результат выполнения программы:
Сумма параметров = 11
Произведение параметров = 30


Слайд 6 class Captured {
delegate void DelegateType(int Param);
static

class Captured {delegate void DelegateType(int Param); static void Main() {DelegateType variable;

void Main() {
DelegateType variable;
{ // Внутренний блок

и локальная переменная:
int multy = 3;
variable = x =>
Console.WriteLine("multy = {0}; x = {1}; x*multy = {2}",
multy, x, x*multy);
} // Конец блока существования переменной multy.
int p = 5;
variable(p); // Вычисление лямбда-выражения
} }

Результат выполнения программы:
multy = 3; x = 5; x*multy = 15


Слайд 7 Захват изменяемых переменных
delegate void Del( );
static void Main(

Захват изменяемых переменныхdelegate void Del( );static void Main( ) { Del

) {
Del [ ] arDel = new

Del[3];
for (int k = 0; k < arDel.Length; k++)
arDel[k] = () => Console.Write(k+"\t");
foreach(Del d in arDel)
d();

/* Результаты:
3 3 3
*/

Слайд 8 Захват временных изменяемых переменных
delegate void Del( );
. .

Захват временных изменяемых переменныхdelegate void Del( );. . . .Del []

. .
Del [] arDel = new Del[3];
. . .

.
for (int k = 0; k < arDel.Length; k++) {
int temp = k;
arDel[k] = () => Console.Write(temp+"\t");
}
foreach(Del d in arDel)
d();

/* Результаты:
0 1 2
*/

Слайд 9 Захват изменяемых переменных в foreach
delegate void Del( );
.

Захват изменяемых переменных в foreachdelegate void Del( );. . . .Del

. . .
Del [] arDel = new Del[3];
. .

. .
foreach (int j in new int [] {1,2,3})
arDel[j-1] = () => Console.Write(j+"\t");
foreach(Del d in arDel)
d();

/* Результаты:
1 2 3
*/



Слайд 10 Некоторые статические методы класса Array с параметрами-делегатами
Array.ConvertAll(

Некоторые статические методы класса Array с параметрами-делегатами Array.ConvertAll( )Array.ForEach( )Array.Sort( )

)
Array.ForEach( )
Array.Sort( )
Array.Find( )
Array.FindAll( )

Оператор цикла foreach предназначен

для перебора элементов коллекций, реализующих интерфейсы:
System.Collections.IEnumerable или System.Collections.Generic.IEnumerable


Слайд 11 Метод Array.ConvertAll
public static TOutput[] ConvertAll(
TInput[] array,
Converter

Метод Array.ConvertAllpublic static TOutput[] ConvertAll(	TInput[] array,	Converter converter )TInput, Toutput – типизирующие

converter )
TInput, Toutput – типизирующие параметры;

Converter - обобщенный

делегат-тип:
public delegate TOutput Converter
(TInput input)


Слайд 12 Применение лямбда-выражения в Array.ConvertAll ( )

Применение лямбда-выражения в Array.ConvertAll ( )  int[ ] fib =

int[ ] fib = new int[ ] {

0, 1, 1, 2, 3, 5, 8, 13 };
double[ ] del = Array.ConvertAll(fib, e => e/10.0);
foreach (double elem in del)
System.Console.Write(elem+"\t");

Результат:
0 0,1 0,1 0,2 0,3 0,5 0,8 1,3


Слайд 13 Метод Array.ForEach( )
public static void ForEach(T[] array,

Метод Array.ForEach( )public static void ForEach(T[] array, 				   Action

Action action)
T – типизирующий параметр;
Action

- обобщенный делегат-тип:
public delegate void Action(T obj)

Слайд 14 Примеры использования метода Array.ForEach( )
int[] fib = new

Примеры использования метода Array.ForEach( )int[] fib = new int[] { 0,

int[] { 0, 1, 1, 2, 3, 5, 8,

13 };
Array.ForEach(fib, Console.Write);

Результат выполнения:
011235813

Array.ForEach(fib, y => Console.Write(y+"\t"));

Результат выполнения:
0 1 1 2 3 5 8 13


Слайд 15 Метод Array.Sort( )
public static void Sort(T[] array,
Comparison comparison)
T

Метод Array.Sort( )public static void Sort(T[] array,		Comparison comparison)T – типизирующий параметр;Comparison

– типизирующий параметр;
Comparison - обобщенный делегат-тип:
public delegate int Comparison

T>(T x, T y)


Слайд 16 Пример использования метода Array.Sort( )
int[ ] temp =

Пример использования метода Array.Sort( )int[ ] temp = new int[ ]

new int[ ] { 10, 11, 15, 22, 43,

5, 8, 13 };
Array.Sort(temp, (x, y) => // тип не указан
{ if (x%5 == 0 & y%5 != 0 ) return 1
if (x == y) return 0;
return -1; // верный порядок
} );
Array.ForEach(temp, y => Console.Write(y + "\t"));

Результат выполнения:
13 8 43 22 11 5 15 10


Слайд 17 Метод Array.Find( )
public static T Find( T[ ]

Метод Array.Find( )public static T Find( T[ ] array, Predicate match)T

array, Predicate match)
T – типизирующий параметр;
Predicate - обобщенный

делегат-тип:
public delegate bool Predicate(T obj)


Слайд 18 Пример использования метода Array.Find( )
int[ ] temp =

Пример использования метода Array.Find( )int[ ] temp = new int[ ]

new int[ ] { 10, 11, 15, 22, 43,

5, 8, 13 };
int res = Array.Find(temp, t => t%5==0 & t%3==0);
Console.WriteLine("res = "+res);

Результат выполнения:
res = 15


Слайд 19 Метод Array.FindAll( )
public static T [ ] FindAll(

Метод Array.FindAll( )public static T [ ] FindAll( T[ ] array,

T[ ] array,
Predicate match)
T – типизирующий параметр;
Predicate

- обобщенный делегат-тип:
public delegate bool Predicate(T obj)



  • Имя файла: anonimnyy-metod-i-lyambda-vyrazhenie.pptx
  • Количество просмотров: 205
  • Количество скачиваний: 0