Параметрүүдийн массив, params түлхүүр үг.

Өмнөх хичээлүүдийн бүх жишээнүүдэд тогтмол тооны параметерүүдийг ашигласан. Харин params түлхүүр үгийг ашиглан аргад тодорхойгүй тоотой параметрийг дамжуулж болно.

void Sum(params int[]  numbers)
{
    int result = 0;
    foreach (var n in numbers)
    {
        result += n;
    }
    Console.WriteLine(result);
}
 
int[] nums = { 1, 2, 3, 4, 5};
Sum(nums);
Sum(1, 2, 3, 4);
Sum(1, 2, 3);
Sum();

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

how_to_regБүртгүүлэх

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

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

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

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

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

string Move(int distance)

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

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

Өмнөх хичээлүүдэд бид

  • Олон урсгал гэж юу болох, түүнийг үүсгэн ажиллах
  • Invoke аргын ажиллагааны зарчим, делегатыг дамжуулах механизм
  • Invoke аргын дээд түвшингийн багцлалт болох SynchronizationContext класс
  • Олон урсгалыг хэрэгжүүлэхэд машины нөөцийг урсгалын багцлалтаар хэрхэн хэмнэх
  • Олон урсгалыг хэрэгжүүлэх дээд түвшиний BackgroundWorker, Task классууд
  • Олон урсгалыг бараг синхрон код байдлаар хэрэгжүүлэх async/await түлхүүр үгүүд

гэх мэтийн олон чухал ухагдхуунуудыг үзсэн. Энэ удаагийн хичээлээр Task классыг ашиглан алдааны боловсруулалт, үйлдлийн цуцлалтыг хэрхэн хийхийг авч үзье.

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

C# -д аргад параметрийг утгаар ба холбоосоор дамжуулах гэсэн хоёр арга байдаг.

Параметрийг утгаар дамжуулах

Параметрийг дамжуулах хамгийн энгийн арга бол утгаар нь дамжуулах юм. Энэ бол параметрийг дамжуулах ердийн арга.

void Increment(int n)
{
    n++;
    Console.WriteLine($"Increment аргад дамжуулсан параметрийн утга: {n}");
}

int number = 5;
Console.WriteLine($"Increment аргын өмнөх number хувьсагч: {number}");
Increment(number);
Console.WriteLine($"Increment аргын дараах number хувьсагч: {number}");

Консолийн гаралт

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

Загварчлалын зарчмуудын нэгээр классуудын багцуудыг үүсгэхдээ тэдгээрийн тодорхой хэрэгжүүлэлтийн бус харин интерфейсүүдийн түвшинд загварчлах хэрэгтэй гэж үздэг. Энэ тохиолдолд интерфейс гэдэгт зөвхөн interface гэсэн түлхүүр үгээр тодорхойлогдсон C# хэлний төрлийг ойлгохоос гадна ямар нэгэн тодорхой хэрэгжүүлэлт байхгүй функционал боломжуудын тодорхойлолтыг ойлгох хэрэгтэй. Өөрөөр хэлбэл энэхүү тодорхойлолтод интерфейсүүд болон тодорхой хэрэгжүүлэлт байхгүй абстракт аргуудтай байж болох абстракт классууд ч хамрагдсан гэсэн үг.

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

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

тэнцэтгэл биш хэдэн бүхэл тоон шийдтэй вэ?

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

 

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

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

 

b1=3, bn=96, Sn=189 геометр прогресийн 8-р гишүүнийг ол.

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