Параметрийг холбоосоор ба утгаар дамжуулах. Гаралтын параметрүүд.

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}");

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

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

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

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

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

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

class Account
{
    // дансны үлдэгдэл
    public int Sum { get; private set; }
    // байгуулагчаар дансны эхний үлдэгдлийг тогтооно
    public Account(int sum) => Sum = sum;
    // дансанд мөнгө хийх
    public void Put(int sum) => Sum += sum;
    // данснаас мөнгө авах
    public void Take(int sum)
    {
        if (Sum >= sum)
        {
            Sum -= sum;
        }
    }
}

классийг аваад үзье. Байгуулагчид Sum шинжид хадгалагдах эхний үлдэгдлийг тогтооно. Put аргаар дансанд мөнгө хийнэ.

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

Хэрвээ системийн өөрийн дотоод онцгой нөхцлийн төрлүүд тохиромжгүй бол бид өөрсдөө төрлүүд үүсгэж болно. Бүх онцгой нөхцлийн суурь класс Exception учраас өөрийн төрлийг үүсгэхдээ бид энэ классаас удамшуулна.  
Жишээ нь манай програмд насны хязгаарлалт байлаа гэе.

try
{
    Person person = new Person { Name = "Tom", Age = 17 };
}
catch (Exception ex)
{
    Console.WriteLine($"Алдаа: {ex.Message}");
}
 
class Person
{
    private int age;
    public string Name { get; set; } = "";
    public int Age
    {
        get => age;
        set
        {
            if (value < 18)
                throw new Exception("18 нас хүрээгүй бол бүртгэл хаалттай");
            else
                age = value;
        }
    }
}

Person классийн age шинжид утга олгохдоо шалгалт хийн нас 18 -аас бага бол онцгой нөхцлийг үүсгэнэ.

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

Мэдээллийн технологийн салбарын хөгжлийг дагаад кодлогчийн хэрэгцээ жилээс жилд өссөөр байна. Програмийн кодлогч болоход туслах зорилгоор сайтад орчин үед өндөр эрэлттэй байгаа хэлүүдийн хичээлүүдийг цувралаар оруулсаар байх болно. Аливаа зүйлийг сурах суурь бол таны хүсэл эрмэлзлэл гэдгийг Суралцах хир хэцүү вэ? нийтлэлийг уншаад эргэцүүлэн бодоорой.

Хичээлээр консолоос өгөгдөл оруулах, консолд өгөгдлийг үзүүлэхийг судлах болно.

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

Өмнөх хичээлүүдэд консолд мэдээлэл үзүүлэхдээ компиляторын Console.WriteLine аргыг хэрэглэсэн. Хэрвээ консолд мэдээллийг гаргах хэрэгтэй түүнийг Console.WriteLine аргад дамжуулах хэрэгтэй. Жишээ нь төслийн Program.cs файлд

string hello = "Сайн уу Монгол";
Console.WriteLine(hello);
Console.WriteLine("C# -д тавтай морил!");
Console.WriteLine("Баяртай Монгол...");
Console.WriteLine(24.5);

командуудыг (statement) өгөөд төслийг ажлуулбал консолд

гэж харуулна.

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

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

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

  • Холбоонууд нарийн, ээдрээтэй олон тооны харилцан холбоотой обьектууд байх үед.
  • Өөр обьектуудтай нягт холбоотойгоос үүдэн дахин ашиглахад хүндрэлтэй обьектыг дахин ашиглах шаардлага гарах үед

Хэвийг UML диаграмаар дараах байдлаар тодорхойлно.

patt_21_01

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

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

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

 

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

Жич: Маш сонирхолтой гоё бодлого. Оролдоод үзээрэй.

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

 

илэрхийллийн хялбарчил.

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