0Pricing
C# Academy · Lekcja

Nullable w obliczeniach

Poznaj sposób propagowania wartości null w działaniach arytmetycznych.

Nullable w obliczeniach to bezpłatna lekcja C# Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej C# Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs C# Academy zawiera 4 lekcji w sumie.

Operatory podniesione

C# „podnosi” operatory arytmetyczne i porównania, aby działały z typami nullable. Operatory takie jak + automatycznie otrzymują wersję działającą z wartościami nullable.

using System;

class Program {
    static void Main() {
        int? a = 5;
        int? b = 3;
        Console.WriteLine(a + b);
    }
}

Null propaguje się przez działania matematyczne

Jeśli dowolny operand w podniesionym wyrażeniu arytmetycznym ma wartość null, wynikiem jest null.

using System;

class Program {
    static void Main() {
        int? a = 5;
        int? b = null;
        int? sum = a + b;
        Console.WriteLine(sum.HasValue);
    }
}

Wyświetlanie wyników null

Wynik arytmetyczny o wartości null jest wyświetlany jako pusty ciąg znaków, zgodnie ze sposobem wyświetlania wartości nullable.

using System;

class Program {
    static void Main() {
        int? a = null;
        Console.WriteLine("Result: [" + (a * 2) + "]");
    }
}

Łączenie wartości nullable i non-nullable

W działaniach matematycznych można łączyć int i int?; wartość int jest konwertowana na typ nullable, a wynik również jest nullable.

using System;

class Program {
    static void Main() {
        int? a = 10;
        int b = 4;
        int? result = a - b;
        Console.WriteLine(result);
    }
}

Podniesione operatory porównania

Operatory porównania również są podnoszone dla wartości nullable. Jeśli któraś ze stron ma wartość null, porównania porządkujące, takie jak <, zwracają false.

using System;

class Program {
    static void Main() {
        int? a = null;
        int? b = 5;
        Console.WriteLine(a < b);
        Console.WriteLine(a > b);
    }
}

Równość z wartością null

W przeciwieństwie do porównań porządkujących równość jest zdefiniowana: dwie wartości null są równe, a null nie jest równe żadnej liczbie.

using System;

class Program {
    static void Main() {
        int? a = null;
        int? b = null;
        Console.WriteLine(a == b);
        Console.WriteLine(a == 0);
    }
}

Łączenie operatora ?? z działaniami matematycznymi

Należy użyć operatora ??, aby zastąpić null bezpieczną liczbą przed wykonaniem obliczeń i zachować niebędący nullem wynik.

using System;

class Program {
    static void Main() {
        int? a = null;
        int total = (a ?? 0) + 100;
        Console.WriteLine(total);
    }
}

Zabezpieczanie dzielenia

Należy połączyć sprawdzanie HasValue z obliczeniami, aby uniknąć zarówno wartości null, jak i dzielenia przez zero.

using System;

class Program {
    static void Main() {
        int? a = 20, b = 4;
        if (a.HasValue && b.HasValue && b.Value != 0)
            Console.WriteLine(a.Value / b.Value);
    }
}

Sumowanie danych nullable

Podczas sumowania danych, które mogą zawierać wartości null, należy zdecydować, czy je pomijać, czy traktować null jako zero.

using System;

class Program {
    static void Main() {
        int?[] data = { 5, null, 10, null, 2 };
        int total = 0;
        foreach (var x in data)
            total += x ?? 0;
        Console.WriteLine(total);
    }
}

Wartość bool nullable w logice

Typ bool? uczestniczy w podniesionych działaniach logicznych: true | null daje true, false & null daje false, a w pozostałych przypadkach wynikiem jest null.

using System;

class Program {
    static void Main() {
        bool? a = null;
        bool? b = true;
        Console.WriteLine(a | b);
    }
}

Konwertowanie wyniku na zwykłą wartość

Po wykonaniu obliczeń na wartościach nullable należy użyć operatora ?? lub GetValueOrDefault, aby uzyskać zwykłą wartość do wyświetlenia.

using System;

class Program {
    static void Main() {
        int? a = 6, b = 7;
        int product = (a * b) ?? 0;
        Console.WriteLine(product);
    }
}

Szybkie sprawdzenie

Proszę sprawdzić wiedzę na temat obliczeń na wartościach nullable.

Podsumowanie

C# podnosi operatory arytmetyczne, porównania i operatory logiczne do typów nullable. Dowolny operand o wartości null w działaniu arytmetycznym daje wynik null, a porównania porządkujące z wartością null zwracają false, podczas gdy równość jest dobrze zdefiniowana.

Należy użyć operatora ?? lub GetValueOrDefault, aby zastąpić wartości bezpiecznymi wartościami przed obliczeniami lub po nich, a w razie potrzeby użyć HasValue do sprawdzania.

Często zadawane pytania

Czy lekcja „Nullable w obliczeniach” jest bezpłatna?

Tak — pełny tekst „Nullable w obliczeniach” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu C# Academy, przejdź na CoddyKit PRO. Kurs C# Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Nullable w obliczeniach”?

Poznaj sposób propagowania wartości null w działaniach arytmetycznych. Ćwiczysz C# Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć C# Academy?

Nie wymagamy żadnego doświadczenia. C# Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Nullable w obliczeniach”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji C# Academy?

Tak. Każda lekcja C# Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Wprowadzenie do typów wartości Nullable
  2. Właściwości HasValue i Value
  3. Operatory null-coalescing
  4. Nullable w obliczeniach
← Powrót do C# Academy