Constant pattern haqida…

C# 7.0 dan boshlab, switchga parametr qilib berilgan qiymatni belgilangan konstantaga teng yoki yo’qligini tekshirish uchun constant patterndan foydalanishimiz mumkinakan:

public static decimal GetGroupTicketPrice(int visitorCount) => visitorCount switch
{
    1 => 12.0m,
    2 => 20.0m,
    3 => 27.0m,
    4 => 32.0m,
    0 => 0.0m,
    _ => throw new ArgumentException($"Not supported number of visitors: {visitorCount}", nameof(visitorCount)),
};
Войти в полноэкранный режим Выход из полноэкранного режима

Constant patternda switchga parametr qib berilgan qiymatni mamnaqa tipla bilan solishtirish mumkinakan anaqqisa 👇:

  • Целое число и число с плавающей точкой
  • Символ йоки строковый литерал
  • Булево qiymat true yoki false
  • значение перечисления
  • e’lon qilingan const maydoni yoki mahalliy nomi
  • null

tepadigi misoldaka qilib ko’rsataman:

  public static decimal GetGroupTicketPrice(object visitorCount) => visitorCount switch
    {
         1 => 15.0m,         // int qiymat bilan solishtirvotti
        "string" => 12.0m,   // string qiymat bilan solishtirvotti
        'a' => 20.0m,        // char qiymat bilan solishtirvotti
        true => 27.0m,       // bool qiymat bilan
        "enum" => 32.0m,     // enum qiymat 
        null => null,        // null bilan
        0 => 0.0m,           // buyam int qiymat bn soliwtirvotti
        _ => throw new ArgumentException($"Not supported number of visitors: {visitorCount}", nameof(visitorCount)),
    };
Войти в полноэкранный режим Выход из полноэкранного режима

Constant patterndan nullni tekshirishda ham foydalaniladi:

if (input is null)
{
    return;
}
Войти в полноэкранный режим Выход из полноэкранного режима

C# 9.0 dan boshlab, quyidagi misolda ko’rsatilgandaka, null bo’lmaganni tekshirish uchun negated null qilib tekwiriladi:

if (input is not null)
{
    // ...
}
Войти в полноэкранный режим Выход из полноэкранного режима

Uncha chunmagan bo’sela mamyaqqa o’tib ko’rvosela bo’ladi constant pattern!

Оцените статью
Procodings.ru
Добавить комментарий