Нэргүй арга

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

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

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

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

Өгөгдлйн сангаас ID нь 1 тэй тэнцүү харилцагчийн нэрийг өөрчлөх код

    class Program
    {
        static void Main(string[] args)
        {
            var context = new TestDbContext();

            var customer = context.Customers.Single(c => c.CustomerId == 1);
            customer.CustomerName = "А.Ягаан";

            context.SaveChanges();

            Console.ReadLine();
        }
    }

гэж бичигдэнэ. Програмыг ажлуулаад өгөгдлийн сангийн t_customer хүснэгтийг нээн харвал өгөгдөлд өөрчлөлт орсон байгаа. Энд бас нэгэн анхаарах зүйл бий.

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

Өөрөө өөрийгөө дуудах функцийг рекурсив (recursion) гэж нэрлэдэг. Рекурсивийг мэдээлэл зүйн үндсэн ойлголтуудын нэг гэж үздэг. Асуудлын шийдлийн энэхүү арга нь математик индукцтэй төстэй. Өөрөөр хэлбэл функц өөрийгөө дуудахын тулд эхлээд функцийг өөр утгатайгаар дуудсан үр дүнг авсан байх хэрэгтэй болдог.
Функц өөрөө өөрийгөө дуудах ажиллагаа програмчлалын ихэнх хэлүүдэд байдаг тул ухагдхууныг ойлгон хэрэгжүүлж сурсан байх хэрэгтэй. Рекурсивийн (recursion) хэрэгжүүлэлтийг тодорхой шийдлүүд дээр харцгаая.

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

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

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

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

Програмчлалын C# хэлэнд өгөгдлийн энгийн төрлүүдээс гадна enum буюу дурдах /тоолох/ гэсэн төрөл бий. enum төрөл логик холбоотой тогтмолуудаар илэрхийлэгдэнэ.

Төрлийг enum оператороор зарладаг.

enum нэр
{
    // тоологын утгууд
    утга1,
    утга2,
    .......
    утгаN
}

enum араас тооллогын нэрийг өгнө. Дараа нь хаалтанд таслалаар тусгаарлан тооллогын утгууддыг тогтмолуудыг бичнэ.

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

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

Тэгш өнцөгт параллелепипедын диагнал түүний 3 ба 4 хэмжээтэй талстад 60 градусын өнцгөөр налсан бол диагоналын урт хэд вэ?

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

 

Суурийн радиус нь 4 см байх шулуун дугуй цилиндрийн нэг үзүүрээс зурагт үзүүлснээр хавтгайгаар огтлоход хамгийн урт байгуулагч нь 15 см, хамгийн богино байгуулагч нь 9 см болсон бол үүссэн биетийн эзэлхүүнийг ол.

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

 

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

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