Локал функцууд

Өөр функцийн дотор тодорхойлогдсон функцийг локал функц гэдэг. Локал функц тухайн аргын хүрээнд хийгдэх үйлдлүүдийг агуулдаг. Локал функцийг ойлгохын тулд хоёр тоон массивийн нийлбэрийг харьцуулах Compare аргыг

void Compare(int[] numbers1, int[] numbers2)
{
    int numbers1Sum = 0;
    int numbers2Sum = 0;

    foreach (int number in numbers1)
        numbers1Sum += number;

    foreach (int number in numbers2)
        numbers2Sum += number;

    if (numbers1Sum > numbers2Sum)
        Console.WriteLine("numbers1 массивийн тоонуудын нийлбэр их");
    else
        Console.WriteLine("numbers2 массивийн тоонуудын нийлбэр их");
}

int[] numbers1 = { 1, 2, 3 };
int[] numbers2 = { 3, 4, 5, 6, 7 };

Compare(numbers1, numbers2);

гэж тодорхойльё.

Материалыг тусгай эрхтэй хэрэглэгч үзнэ.

request_quoteТусгай эрх авах

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

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

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

Шинжийн тодорхойлолт

Шинжийн стандарт тодорхойлолт

[модификатор] шинжийн_төрөл шинжийн_нэр
{
    get { шинжийн утгыг авахад хийгдэх үйлдлүүд}
    set { шинжийн утгыг тавихад хийгдэх үйлдлүүд}
}

байдаг. Шинжийн тодорхойлолтын эхэнд төрөл бүрийн модификаторууд тавигдаж болно. Тухайлбал хандалтын модификаторууд модификатор. Дараа нь шинжийн төрөл тэгээд шинжийн нэр байна. Шинжийн бүрэн тодорхойлолт get, set гэсэн хоёр блокийг агуулна.

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

Програмчлалын 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() аргыг дуудна.

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

Онолын хувьд обьект хандлагат програмчлал гурван үндсэн зарчим дээр суурилдаг. Үүнд

  1. encapsulation - хайрцаглалт
  2. inheritance - удамшилт
  3. polymorphism - полиморфизм

ордог. Хайрцаглалт гэдгийг классын ажиллагааны логикийг бусад классуудаас хандалтын хэлбэрээр зохицуулан хаах гэж ойлгож болно. Өөрөөр хэлбэл бусад классуудад ашиглаж болох арга, шинжүүдийг public төрлийнх харин шинжид утга олгох, арга өөрөө ашиглах хувьсагчид гэх мэт бусад аргууд ашиглах шаардлагагүй хэсгүүдэд хандалтын private төрлийг тавих юм. Энэ тухай бид C# төрлийн бүрэлдхүүн хичээлд арга private төрлийн хувьсагчид хэрхэн хандахыг ойлгохдоо авч үзсэн.

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

C# -д ердийн классуудаас гадна абстракт классууд гэж бий. Ийм классууд ямар хэрэгтэй вэ? Классууд тодорхой төрлийн обьект эсхүл биетийн ерөнхий хэвийг голдуу илэрхийлдэг. Жишээ нь машинийг төлөөлөх Car эсхүл хүнийг илэрхийлэх Person гэх мэтээр классуудыг тодорхойлоод эдгээрт тухайн обьектийг тодорхойлох талбар, шинж, аргуудыг оруулан өгч болно. Гэтэл тодорхой дүрслэлгүй зарим нэгэн зүйлүүдийг програмчлалын хэлээр илэрхийлэх хэрэгцээ гардаг. Жишээ нь яг энэ гээд хэлэх геометрийн дүрс бодитоор оршдоггүй. Тойрог, тэгш өнцөгт, квадрат гэж байдаг ч зүгээр дүрс гэж байхгүй. Гэхдээ тойрог, тэгш өнцөгтүүдэд зарим нэгэн ерөнхий зүйлүүд байх бөгөөд энэ нь дүрс юм. Тодорхой биелэлгүй үүнтэй төстэй зүйлүүдийг тодорхойлоход абстракт классууд зориулагдсан.

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

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

олон гишүүнтийн язгуурууд x1, x2, x3 (x1<x2<x3) бол
1.
2. x1, x2, x3 арифметик прогрес үүсгэх бол
3. Уул прогрессын ялгавар
4.

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

 

sin90 -ийг олно уу.

Жич: Хатуу самар даа. Сурагчид барна гэхэд хүнд болов уу. ЕБС-ийн хүрээний аргаар л бодолтыг хийж байгаа тул бодолтыг харвал гайгүй ч юм шиг санагдаж магадгүй гоё бодлого.

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

 

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

Жич: Бодох арга орж ирж байна уу. Найз нөхөд, багштайгаа хамжаад үзээрэй. Иймэрхүү бодлогууд сэтгэлгээг хөгжүүлэх, арга техникт суралцахад тустай. 

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