Нэргүй арга

Делегаттай нэргүй арга нягт холбоотой. Нэргүй аргуудыг делегатийн хувийг үүсгэхэд ашигладаг.
Нэргүй аргуудын тодорхойлолт 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);

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

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

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

Бид өмнөх хичээлээр битүүмжлэгдсэн, статик классуудын талаар үзсэн. ОХП-д классууд чухал үүрэгтэй нь ойлгомжтой. Иймээс класуудын төрлүүдийг мэдээд зогсохгүй тэдгээрийг хаана хэрхэн ашиглахыг маш зөв ойлговол таны код цэгцтэй, ойлгомжтой, өөрчлөлт, шинэчлэл хийхэд уян хатан болдог. 

Програмчлалын аргачлал Singleton

Статик арга, классыг хэрхэн ашиглах жишээ болгоод Singleton гэдэг өргөн дэлгэрсэн програмчлалын  аргачлалыг авч үзье. Програм зохиогчдын дунд энэхүү аргачлалын талаар эерэг, сөрөг янз бүрийн үзэл бодлууд байдаг гэдгийг хэлэх нь зүйтэй.

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

Програмчлалын C# хэл хатуу төрөлжилттэй тул өгөгдөлтэй ажиллах үед null утга асуудал үүсгэх тохиолдол их. Үүнийг тооцолгүй бичигдсэн код бүр ажлын /production/ хувилбараар ажиллаж байхдаа алдаа өгөх тал бий. Кодийн тестийг хийхдээ тухайн хувьсагчид null утга олгогдох тохиолдолыг тооцохгүй байх нь ийм асуудал гарах үндсэн шалтгаан хэдий ч кодлогч энэ талаар өөрөө бодон кодлох хэрэгтэй.   

null -ийн шалгалт. Null guard /хамгаалагч/

Коддоо null утга авдаг өөрөөр хэлбэл nullable төрлийн хувьсагч болон параметрүүд ашиглах болбол NullReferenceException алдаа гарахаас сэргийлэн null -ийг шалгах хэрэгтэй. Жишээ нь

void PrintUpper(string? text)
{
    if (text!=null)
    {
        Console.WriteLine(text.ToUpper());
    }    
}

Дээрх кодод text параметр null -тэй тэнцүү биш бол мөрийн тэмдэгтүүдийг том үсэг болгох ToUpper() аргыг дуудна.

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

Нэмэлт урсгалтай ажиллах аргачлалын талаарх ээлжит хичээлийг толилуулъя. Та програм хангамжийн чиглэлээр ажилладаг эсхүл суралцдаг бол сайтын C# хэлний хичээлүүдийг бүгдийг үзэхийг зөвлөе. Учир нь C# хэлэнд оруулан өгсөн технологиудийн утгыг сайн ойлгохгүйгээр програм бичнэ гэвэл нилээд хүндхэн асуудал үүснэ шүү. Програмчлалын хэлүүдийн бичлэгийн ерөнхий дүрэм бараг ижилхэн болсон хэдий ч онолын үндсэн аргачлал, технологийг хэл бүр өөрийн онцлогоор хэрэгжүүлсэн байдаг. Иймээс технологийг ойлгохын тулд тухайн хэлийг гүнзгий судалсан байх хэрэгтэй. Технологийг сайн судлаагүй хүмүүс хэлэнд өөрт нь байдаг боломжуудыг өөрсдөө хэрэгжүүлэх гэж цаг хугацаа, хүч хөдөлмөрөө ихээр үрдэг ч үр дүн нь мэдээжээр сайнгүй гардаг гэдгийг санаарай. Хичээлээр нэмэлт урсгалын нэмэлт урсгалд гарсан алдааг хэрхэн зөв боловсруулахыг авч үзье.

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

Энэ хичээлээс эхлэн бид C# хэлний илүү нарийн ухагдхуунуудыг судлах тул тэдгээрийн суурь болох гурван механизмын талаар авч үзнэ. Эдгээрт   

  1. Тодорхой бус /далд/ төрөлжилт
  2. Нэргүй төрлүүд
  3. Өргөжүүлэлтийн аргууд

багтана. Эдгээр ухагдхуунууд тийм хүнд биш учраас ойлгоход онцын хүндрэлгүй.

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

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

a - гийн ямар утгуудад тэгшитгэлийн шийдүүд сөрөг утгатай байх вэ?

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

 

тэгшитгэлийг бод.

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

 

тэгшитгэлийг бод.

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