Нэргүй арга

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

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

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

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

Утга олгох үйлдэлд хоёр операнд оролцох бөгөөд зүүн операнд зөвхөн өөрчлөгдөж болох илэрхийлэл байх ёстой. Жишээ нь хувьсагч. C# -д бусад програмийн хэлүүдэд байдаг утга олголтын (=) суурь үйлдэл байдаг бөгөөд үйлдэл баруун операндийн утгыг зүүн операндад олгдог.  Жишээ нь

int number = 23;

Дээрх мөр number хувьсагчид 23 утгыг олгож байгаа. Энд number хувьсагч зүүн операнд буюу оролцогч.

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

Бид өмнөх хичээлээр C# хэлний generalization буюу ерөнхийлөл гэдэг төрөл бүрийн обьектуудын төлөв байдлын хэвийг тодорхойлох механизмын талаар үзсэн. Энэ удаагийн хичээлээр сэдвийг үргэлжлүүлэн авч үзэцгээе. Ерөнхийлөлд тодорхой хязгаарлалтууд үйлчилдэг.

Ерөнхийлөлийн хязгаарлалт  

Ерөнхийлөлд тавигдах хязгаарлалтууд түүнтэй ажиллах ажиллагааг илүү уян хатан болгодог нь сонирхолтой.

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

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

Хэвийг хаана ашиглах  

  • Төлөв байдлаараа ялгаатай нэг төрлийн хэдэн классууд байх үед нэг үндсэн классыг өгөөд төлөв байдлын өөр хувилбаруудыг тусдаа классуудад гаргаад шаардлагатай үед тэдгээрийг хэрэглэх.
  • Нөхцлөөс хамааран алгоритмын хувилбаруудаас амархан сонголт хийх боломжийг хангах хэрэгтэй үед.
  • Програм ажиллах явцдаа обьектуудын төлөв байдлыг өөрчлөх шаардлагатай үед
  • Тодорхой ажиллагааг ашиглаж буй класс түүний хэрэгжүүлэлтийн талаар юуг ч мэдэх ёсгүй үед

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

Програмчлалын c# хэл өргөн боломжтой, обьект хандлагат парадигмийг дэмждэг, том төслүүдийн боловсруулалтад өргөнөөр ашиглагддаг, маш универсал хэл. Хэлийг Microsoft хөгжүүлдэг нь л өөрөө ихийг хэлнэ. Миний бодлоор c# -ийн зарим шийдлүүдийг шууд ойлгоход хүндрэлтэй байдаг нь хэлний хийсвэрлэлттэй холбоотой байдаг болов уу. Хэлний боломжийг сайн судлан мэдэхгүйгээр сайн, хүчирхэг гэсэн утгаар төслийн үндсэн хэлээр ашиглах нь зөв биш шийдэл болов уу. Та c# хэл дээр код бичдэг, бичихээр суралцаж байгаа бол хэлний боломж, бололцоог сайн судлахыг зөвлөе.      

Виртуал аргууд, шинжүүд, Далд арга, шинжүүд хичээлүүдээр суурь классаас өвлөн авсан аргуудын ажиллагааг өөрчлөх нуух, дахин тодорхойлох гэсэн хоёр аргыг үзсэн. Эдгээр аргууд хоорондоо ямар ялгаатайг харцгаая.

Үйл явдал /event/ тодорхой үйлдэл хийгдсэн талаар системд мэдэгддэг. Хэрвээ бид энэхүү үйлдлийг ажиглах хэрэгтэй бол яг энд…

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

 

Манай төсөл олон хуудсуудтай болон тэдгээрийн хооронд динамикаар шилжилт хийж байгаа ч тухайн үед шилжилт хийгдсэн хуудаст тохирох…

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

 

Зочин (Visitor) паттерн классуудыг өөрчлөхгүйгээр тэдгээрийн обьектуудын үйлдлийг тодорхойлох боломжийг олгоно. Зочин хэвийг ашиглахдаа классуудын хоёр ангилалыг тодорхойлно.…

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

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

задаргааны хамгийн их нэмэгдхүүн бол a, b, c -г ол.

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

 

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

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

 

функцийн уламжлалын утгыг ол.

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