Нэргүй арга

Делегаттай нэргүй арга нягт холбоотой. Нэргүй аргуудыг делегатийн хувийг үүсгэхэд ашигладаг.
Нэргүй аргуудын тодорхойлолт delegate түлхүүр үгээр эхлээд ард нь хаалтанд параметрүүдийн жагсаалтыг бичээд их хаалтанд аргын бие байрлана.

delegate(параметрүүд)
{
    // командууд
}

Жишээ нь

MessageHandler handler = delegate (string mes)
{
    Console.WriteLine(mes);
};
handler("hello world!");
 
delegate void MessageHandler(string message);

Нэргүй аргыг делегатийн хувийн инициализацад ашигладаг тул бие даан оршиж чаддаггүй. Дээрх жишээнд handler нэргүй аргыг илэрхийлнэ. Делегатийн энэ хувьсагчаар тухайн нэргүй аргыг дуудсан.
Параметрийн аргументээр делегатийг дамжуулсан өөр

ShowMessage("hello!", delegate (string mes)
{
    Console.WriteLine(mes);
});
 
static void ShowMessage(string message, MessageHandler handler)
{
    handler(message);
}
 
delegate void MessageHandler(string message);

жишээг харцгаая. Нэргүй арга параметр ашиглаж байвал тэдгээр нь делегатийн параметрт тохирч байх ёстой. Хэрвээ нэргүй арга параметргүй бол параметрүүдийг заах хаалтыг бичихгүй. Ингэхдээ делегат хэдэн параметрийг авч байсан ч нэргүй аргад параметрүүдийг бүр орхиж болно.

MessageHandler handler = delegate
{
    Console.WriteLine("нэргүй арга");
};
handler("hello world!");    // нэргүй арга
 
delegate void MessageHandler(string message);

Нэргүй арга параметрүүдийг агуулж байвал тэдгээр нь делегатийн параметрүүдэд тохирч байх ёстой. Эсхүл нэргүй арга ямарч параметрүүдгүй байж болох бөгөөд ийм нэргүй арга нь ижил төрлийн буцаах утгатай дурын делегатттай тохирно.
Нэргүй аргын нэг эсхүл хэдэн параметрүүд out модификатороор тодорхойлогдсон бол тэдгээрийг орхиж болохгүй.
Нэргүй арга ердийн аргын адилаар үр дүнг буцааж болно.

Operation operation = delegate (int x, int y)
{
    return x + y;
};
int result = operation(4, 5);
Console.WriteLine(result);       // 9
 
delegate int Operation(int x, int y);

Нэргүй арга гадаад кодод тодорхойлогдсон бүх хувьсагчид хандалттай.

int z = 8;
Operation operation = delegate (int x, int y)
{
    return x + y + z;
};
int result = operation(4, 5);
Console.WriteLine(result);       // 17
 
delegate int Operation(int x, int y);

Ямар нөхцөлд нэргүй аргыг ашиглах вэ? Аргын бие хэсэг олон командгүй, өөр хаана ч ашиглахгүй нэг удаагийн үйлдлийг тодорхойлох болбол нэргүй аргыг ашигладаг. Тухайлбал нэргүй аргуудыг үйл явцын боловсруулалтад ашиглах боломжтой.

Мэдээлэл таалагдсан бол найзуудтайгаа хуваалцаарай.

  Нээгдсэн тоо: 108 Төлбөртэй

Хэвүүдийг /паттерн/ судлахын өмнө обьект хоорондын үндсэн харилцааг ойлгосон байх нь асуудлын ухагдхуун хоорондын холбоог ойлгон тэдгээрийг хэвүүдэд ашиглахад танд туслана. Обьект хоорондын харилцаанаас удамшилт /inheritance/ , хэрэгжүүлэлт /implementation/, ассоциац /association/, композиц /composition/, агрегац /aggregation/ гэсэн үндсэн харилцаануудыг онцолж болно.

  Нээгдсэн тоо: 408 Нийтийн

C# хэл дээр програм зохиоход бидэнд юу хэрэгтэй вэ?

  • Програмийн кодоо бичих текст засварлагч.
  • Програмийн кодийг exe өргөтгөлтэй файлд багцлах компилятор /хөрвүүлэгч/
  • Програмийн компиляц, цаашдын ажиллагаанд хэрэгтэй .NET фреймворк

хэрэгтэй.

Програмийн кодийг бичих, тестлэн зүгшрүүлэх ажиллагааг хөнгөвчлөх үүднээс ихэнхдээ тусгай боловсруулалтын орчинг ашигдладаг. Тухайлбал Visual Studio.

  Нээгдсэн тоо: 2280 Бүртгүүлэх

Энэ удаагийн хичээлээр бид generalization буюу ерөнхийлөл гэдэг төрөл бүрийн обьектуудын төлөв байдлын хэвийг тодорхойлох нилээд хүчирхэг хэрэгслийн талаар үзнэ.  

Ерөнхийлөл гэж юу вэ?

Ерөнхийлөл гэдэг бол класс эсхүл аргуудыг удирдах хувьсах өгөгдлийн төрөл юм. Ерөнхийлөл ашиглах өгөгдлийн төрлүүдийг урьдчилан тодорхойлохгүйгээр тэдгээрийг програмын явцад сүүлд тодорхойлох боломжийг олгодог. Үүнийг жишээгээр харцгаая. Бидэнд int төрлийн оролтын параметртэй string төрлийн гаралттай

string Move(int distance)

Move гэсэн арга байлаа гэж бодъё.

  Нээгдсэн тоо: 1056 Төлбөртэй

Олон урсгалыг үүсгэн удирдах хичээлээр бид Invoke аргаар удирдлагыг нэмэлт урсгалаас үндсэн урсгалд хэрхэн шилжүүлэх талаар авч үзсэн. Invoke арга удирдлагыг нэмэлт урсгалаас үндсэн урсгалд шилжүүлэх цорын ганц зам биш. .NETSynchronizationContext гэдэг класс бий. Энэ класс нэг эсхүл олон урсгалыг барин тэдгээрийн хооронд удирдлагыг дамжуулах ажиллагааг хийдэг. Ерөнхийдөө Invoke арга хийдэгтэй ижил. Эндээс Invoke аргаар шийдэж болж байхад бас нэгэн класс байх ямар хэрэгтэй юм бэ? гэсэн асуулт гарч ирнэ.

Лямбда-илэрхийлэл нь нэргүй аргын хураангуй бичилтийг илэрхийлнэ. Лямбда-илэрхийлэл утга буцаадаг, буцаасан утгыг өөр аргын…

Нээгдсэн тоо : 33

 

Кодийн сайжруулалт /рефакторинг/ хичээлээр програмийн кодоо react -ийн зарчимд нийцүүлэн компонентод салгасан.…

Нээгдсэн тоо : 59

 

Хадгалагч (Memento) хэв обьектын дотоод төлвийг түүний гадна гаргаж дараа нь хайрцаглалтын зарчмыг зөрчихгүйгээр обьектыг сэргээх боломжийг олгодог.

Нээгдсэн тоо : 65

 

Делегаттай нэргүй арга нягт холбоотой. Нэргүй аргуудыг делегатийн хувийг үүсгэхэд ашигладаг.
Нэргүй аргуудын тодорхойлолт delegate түлхүүр үгээр…

Нээгдсэн тоо : 66

 

Математикт харилцан урвуу тоонууд гэж бий. Ямар нэгэн тооны урвуу тоог олохдоо тухайн тоог сөрөг нэг зэрэг дэвшүүлээд…

Нээгдсэн тоо : 83

 

Төсөлд react-router-dom санг оруулан чиглүүлэгчдийг бүртгүүлэн тохируулсан Санг суулган тохируулах хичээлээр бид хуудас…

Нээгдсэн тоо : 95

 

Хуваах нь нэг тоо нөгөө тоонд хэдэн удаа агуулагдаж буй тодорхойлох арифметикийн үйлдэл.
Хуваалтыг нэг бус удаа…

Нээгдсэн тоо : 74

 

Зуучлагч (Mediator) нь олон тооны обьектууд бие биетэйгээ холбоос үүсгэхгүйгээр харилцан ажиллах боломжийг хангах загварчлалын хэв юм. Ингэснээр…

Нээгдсэн тоо : 60

 

Делегатууд хичээлд ухагдхууны талаар дэлгэрэнгүй үзсэн ч жишээнүүд делегатийн хүчийг бүрэн харуулж чадахааргүй байсан.…

Нээгдсэн тоо : 80

 
Энэ долоо хоногт

Арифметик прогресийн 5-р гишүүн 8,4 харин 10-р гишүүн 14,4 тэнцүү бол энэ прогресийн 22-р гишүүнийг ол.

Нээгдсэн тоо : 1085

 

Дарааллын эхний n гишүүний нийлбэр томьёогоор өгөгджээ. Хэрэв энэ дараалал геометр прогресс бол q -г ол, арифметик прогресс бол d -г ол.

Нээгдсэн тоо : 777

 

бол M·N=?

Нээгдсэн тоо : 1068