• O WordPressie
    • WordPress.org
    • Dokumentacja
    • Naucz się WordPressa
    • Pomoc
    • Uwagi
  • Zaloguj się
Marek Zając Marek Zając
  • contact@zajacmarek.com Zapraszam do kontaktu
  • Strona główna
  • O mnie
  • Kursy
  • Konsultacje
  • Kanał Youtube
  • 12 września 2014
  • Marek Zając
  • 0 Comments

C# Tips – nullowalne typy proste

Czasami zachodzi konieczność aby móc do zmiennej typu prostego przypisać poza konkretną wartością także wartość null. Zdarza się tak chociażby podczas tworzenia encji bazy danych w podejściu Code-First kiedy jakaś kolumna z liczbami powinna móc też zostać pusta przy dodawaniu nowego rekordu.

Aby można było to zrobić trzeba opakować nasz tym w strukturę Nullable<T>, która udostępni pola HasValue i Value. Przykład:

Nullable<int> var1;
var1 = 1;
int var2 = var1.Value;
var1 = null;

 Jednak programiści to oszczędne i leniwe istoty, a klawiatury też mają skończoną wytrzymałość dlatego powstało takie wyrażenie jak ? (pojedynczy znak zapytania), które pozwala skrócić deklarację zmiennej mogącej przyjmować wartość null do takiej postaci:

int? var1;
var1 = 1;
int var2 = var1.Value;
var1 = null;

 Zmiana niewielka ale upraszczająca wizualnie kod, zwłaszcza kiedy deklarujemy kilka tego typu pól/właściwości w klasie.

Na koniec jeszcze przykład użycia z wykorzystaniem możliwości sprawdzenia czy zmienna na wartość null w dwóch wersjach:

int? i = null;

if(i.HasValue)
{
    return i.Value;
}
//...
int? i = null;

if(i != null)
{
    return i.Value;
}
//...

 Pierwszy sposób jest bardziej opisowy i wykorzystuje elementy struktury Nullable<T>, drugi zaś jest identyczny jak przy typach normalnie obsługiwanych przez referencję. Oba działają tak samo.

Related Posts
  • Powrót do Prostoty: Lekcje z Boiling Frogs 2025 18 marca 2025
  • Vibe Coding: 5 Złotych Zasad dla Nieoprogramistów Tworzących Aplikacje z AI 18 marca 2025
  • Niecały projekt musi być elastyczny przy dużym ruchu 25 marca 2024

Leave a Comment Cancel Comment

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Copyright 2020 Bizix, All rights reserved.
  • POLITYKA PRYWATNOŚCI I PLIKÓW COOKIES