C# для начинающих Пахомов Б. И



Download 8,15 Mb.
Pdf ko'rish
bet192/266
Sana20.04.2022
Hajmi8,15 Mb.
#567200
1   ...   188   189   190   191   192   193   194   195   ...   266
Bog'liq
C# for beginners


Часть II. Объектно-ориентированное программирование 
того, что типом 
x
должен быть 
int
, а типом возврата — тоже 
int
. Лям-
бда-выражение мы могли бы записать напрямую через делегата: 
Ar d = x => -x; 
В листинге 13.6 было рассмотрено лямбда-выражение с одним парамет-
ром (
х
). Но параметров может быть несколько или вовсе ни одного. Во-
обще, синтаксис лямбда-выражения имеет вид: 
(
входные_параметры
) => 
выражение
Если лямбда-выражение имеет только один параметр ввода, скобки 
можно не ставить (что и было в нашем примере), во всех остальных 
случаях скобки обязательны. Два и более параметра разделяются запя-
тыми и заключаются в скобки. Например, 
(x, y) => x == y 
Иногда компилятору бывает трудно или даже невозможно определить 
введенные типы. В этом случае типы можно указать в явном виде, как 
показано в следующем примере: 
(int x, string s) => s.Length > x 
Нулевые параметры ввода (т. е. когда параметры вообще отсутствуют) 
указываются пустыми скобками: 
() => SomeMethod() 
Лямбда-операторы 
В этом случае оператор (или операторы) заключается в фигурные скоб-
ки. Синтаксис такой: 
(
Входные_параметры
) => {
Оператор
(
операторы
)}; 
Основная часть лямбда-оператора может состоять из любого количества 
операторов; однако на практике обычно используется не больше двух-
трех. Пример лямбда-операторов приведен в программе листинга 13.7, 
а результат работы программы — на рис. 13.7. 
Листинг 13.7 
/* Created by SharpDevelop. 
* User: user 
* Date: 23.12.2012 


Глава 13. Делегаты и события 
309 
* Time: 14:08 

* To change this template use Tools | Options | Coding | 
* Edit Standard Headers. */ 
using System; 
namespace app64_lambda2 

class Program 

delegate int del(int i); 
delegate void Test(string s); 
delegate int Test2(int x, int y); 
public static void Main() 

Console.WriteLine("Лямбда-выражения и " + 
"лямбда-операторы"); 
// Один параметр у лямбда-выражения и один оператор 
del myDelegate = x => x * x; 
int j = myDelegate(5); //j = 25 
Console.WriteLine("Лямбда-выражение: {0}",j); 
// Один параметр и более одной строки
// у лямбда-выражения 
Test myDel = n => 

string s = n + " " + "World"; 
Console.WriteLine(s); 
// return n
// return должен быть, если тип исполняемой 
// делегатом функции не void 
}; 
Console.WriteLine("Лямбда-оператор: "); 
myDel("Hello,"); 
// Два параметра у лямбда-выражения и более 
// одной строки 
Console.WriteLine("Два параметра "+ 
"у лямбда-выражения"); 
Test2 myT = (x, y) => 


310 
Download 8,15 Mb.

Do'stlaringiz bilan baham:
1   ...   188   189   190   191   192   193   194   195   ...   266




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2025
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish