Null -г шалгах ?, ?? операторууд

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

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

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

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

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

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

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

Өмнөх хичээлүүдийн бүх жишээнүүдэд тогтмол тооны параметерүүдийг ашигласан. Харин 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();

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

Өнөө үед мэдээллийн технологийн салбарт эрэлттэй, эрчимтэй хөгжүүлэлттэй, хамгийн хүчирхэг хэлүүдийн нэг бол програмчлалын C# хэл юм. Хэл дээр десктопийн жижигхэн програмаас эхлээд өдөрт сая сая хэрэглэгчид үйлчлүүлдэг том хэмжээний веб портал, сервисүүд гээд маш олон төрлийн програмуудыг боловсруулж байна.
C# залуу хэл биш бөгөөд .NET платформ хөгжлийн урт замыг туулсан. 2002 оны 2-р сард Microsoft Visual Studio .NET -тэй зэрэг хэлний анхны хувилбар гарсан.

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

Онцгой нөхцлийг дуудсан кодийг try блок эсхүл онцгой нөхцлийг боловсруулах catch блокгүй try..catch бүтцэд байршуулсан бол систем тохирох боловсруулагчийг дуудалтын стект хайна. Жишээ нь

try
{
    TestClass.Method1();
}
catch (DivideByZeroException ex)
{
    Console.WriteLine($"Main арга дахь catch : {ex.Message}");
}
finally
{
    Console.WriteLine("Main арга дахь finally блок");
}
Console.WriteLine("Main аргын төгсгөл");
 
class TestClass
{
    public static void Method1()
    {
        try
        {
            Method2();
        }
        catch (IndexOutOfRangeException ex)
        {
            Console.WriteLine($"Method1 аргын catch: {ex.Message}");
        }
        finally
        {
            Console.WriteLine("Method1 аргын finally блок");
        }
        Console.WriteLine("Method1 аргын төгсгөл");
    }
    static void Method2()
    {
        try
        {
            int x = 8;
            int y = x / 0;
        }
        finally
        {
            Console.WriteLine("Method2 аргын finally блок");
        }
        Console.WriteLine("Method2 аргын төгсгөл");
    }
}

кодийг авч үзье.

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

Хуваах нь нэг тоо нөгөө тоонд хэдэн удаа агуулагдаж буй тодорхойлох арифметикийн үйлдэл.
Хуваалтыг нэг бус удаа…

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

 

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

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

 

Делегатууд хичээлд ухагдхууны талаар дэлгэрэнгүй үзсэн ч жишээнүүд делегатийн хүчийг бүрэн харуулж чадахааргүй байсан.…

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

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

функц өгөгдөв.

  1. f(x) функцын x0=5 абсцисстай M цэгт татсан шүргэгч шулууны тэгшитгэл
  2. f(x) функцын график, дээрх шүргэгч шулуун болон координатын тэнхлэгүүдээр хүрээлэгдсэн дүрсийн талбай  
  3. f(x) функцын графикийг M цэгт шүргэх, төв нь OX (абсцисс) тэнхлэг дээр орших тойргийн тэгшитгэл

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

 

20 хувийн концентрацитай 18 гр уусмал дээр концентрацийг нь 4 хувиар нэмэгдүүлэхийн тулд 26 хувийн концентрацитай хичнээн грамм уусмал нэмж хийх шаардлагтай вэ?

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

 

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

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