kiedy musimy użyć typu nullable w C# .net? czy ktokolwiek mógłby wyjaśnić na przykładzie.Co to jest typ zerowy w języku C#?
Odpowiedz
Typ Nullable to nowa koncepcja wprowadzona w C# 2.0, która pozwala użytkownikowi na przypisanie wartości pustej prymitywnym typom danych języka C#. Ważne, by nie tutaj, jest typ Nullable jest typu Structure.
blogpost: Nullable type -- Why we need Nullable types in programming language ?
Nieco niedokładny, powiedziałbym 'Nullable
Napraw swoją gramatykę w Blogspot przed połączeniem jej z SO. Jeśli nikt nie rozumie twoich wyjaśnień z powodu słabej gramatyki, o co chodzi? – ragingasiancoder
z: http://msdn.microsoft.com/en-us/library/1t3y8s4s(v=vs.80).aspx dopuszczające wartość null typy wystąpień System.Nullable struktury. Typ zerowalny może reprezentować normalny zakres wartości dla jego bazowego typu wartości plus dodatkową wartość pustą. Na przykład wartości Nullable <Int32>, wymawiane jako "Nullable of Int32", można przypisać dowolną wartość z -2147483648 do 2147483647 lub można jej przypisać wartość pustą. Nullable <bool> można przypisać wartości prawda lub fałsz lub null
class NullableExample
{
static void Main()
{
int? num = null;
if (num.HasValue == true)
{
System.Console.WriteLine("num = " + num.Value);
}
else
{
System.Console.WriteLine("num = Null");
}
//y is set to zero
int y = num.GetValueOrDefault();
// num.Value throws an InvalidOperationException if num.HasValue is false
try
{
y = num.Value;
}
catch (System.InvalidOperationException e)
{
System.Console.WriteLine(e.Message);
}
}
}
typy dopuszczające wartość null (When to use nullable types) są typy wartości, które można podjąć, null jako wartość. Jego domyślną wartością jest null
, co oznacza, że nie przypisałeś jej wartości. Przykład typów wartości są int, float, double, DateTime, itd. Te typy mają te domyślne
int x = 0;
DateTime d = DateTime.MinValue;
float y = 0;
Dla pustych alternatyw defualt któregokolwiek z powyższych jest null
int? x = null; //no value
DateTime? d = null; //no value
To czyni je zachowywać się jak typy odniesienia np obiekt, string
string s = null;
object o = null;
Są one bardzo przydatne, gdy do czynienia z wartościami z bazy danych, gdy wartości zwracanej z tabeli jest NULL
. Wyobraźmy sobie wartość całkowitą w tabeli bazy danych, która może mieć wartość NULL, taka wartość może być reprezentowana tylko przez 0
, jeśli zmienna C# nie jest zerowa - zwykła liczba całkowita.
Wyobraź sobie także kolumnę EndDate
, której wartość nie zostanie określona do czasu rzeczywistego w przyszłości. Które mogą być ustawione na NULL w DB, ale musisz się zerowalne typu do sklepu, który w C#
DateTime StartDate = DateTime.Today;
DateTime EndDate? = null; //we don't know yet
Kiedy musimy użyć zerowalne typu w C# .NET?
Wyobraźmy sobie nie jest liczbą całkowitą, która reprezentuje zmienną id
szczególny id
.
można przechowywać 1
, 44
lub cokolwiek else.But co jeśli nie znasz id.You cant tylko przechowywać -1
lub 0
.you można myśleć przypisać null
null
ale normalnie nie mogą być przypisane do typów wartości .
int id=null;//error
Nullable type
Umożliwia to.
Typy wartości jak int,double,char..
nie może być reprezentowana jako NULL
wartości.
Do reprezentowania null
w rodzaju wartości należy użyć nullable type
..
To jest oznaczona jako typ wartości następnie ?
int? id=null;
który transalted do
Nullable<int> id=new Nullable<int>();
Ustawienie domyślne wartość tego typu zerowalnego to null
.
Założono w aplikacji, że masz obowiązek uchwycić datę urodzenia klienta, która nie jest obowiązkowym polem. Możesz zadeklarować właściwość DateOfBirth jako typ System.DateTime w klasie Klient. Ponieważ DateTime jest typem wartości, nie może akceptować wartości null, więc będzie mieć pewną wartość domyślną.
Tak więc, gdy klient nie wprowadził wyraźnej wartości w formancie Data urodzenia, przed zapisaniem go w DB należy zachować logikę, aby uznać wartość domyślną za NULL. W DB można zapisać pola NULL do pola DateTime.
Aby uniknąć niechcianych kroków w celu interpretacji wartości w interfejsie użytkownika i warstwie DA, można użyć typów zerowalnych w języku C#, dzięki czemu kod stanie się bardziej czytelny.
Aby przeczytać o więcej informacji na temat typów zerowalnych, zobacz Nullable types in C# with an example.
- 1. Co to jest ".. ::." w języku C#?
- 2. Co to jest void * w języku C#?
- 3. Co to jest typ kowariantny?
- 4. Co to jest dosłownie w języku Java?
- 5. Co to jest wyrażenie w języku Python?
- 6. Co to jest typ Vec3b?
- 7. Co to jest "@_silgen_name" w języku Swift?
- 8. Co to jest stereofoniczny typ
- 9. Co to jest typ sparametryzowany?
- 10. Co to znaczy, że typ jest "pudełkowy"?
- 11. Co to jest "1ULL" w języku programowania
- 12. Co to jest typ odniesienia integer w C#?
- 13. Co oznacza "[to]" oznacza w języku C++
- 14. Co to jest Typ w kancie 2?
- 15. Co to jest "typ SAM" w Javie?
- 16. Co to jest "return x? : 1 "oznacza w języku C?
- 17. Co to jest odpowiednik vbNullChar w języku C#?
- 18. Co to jest odpowiednik NSDictionary w języku C#?
- 19. Co to jest "alias przestrzeni nazw" w języku C++?
- 20. Co to jest użycie funkcji c_str W języku C++
- 21. Co to jest dynamiczny odpowiednik C# w C++ CLI?
- 22. Co to jest "==" w C?
- 23. Co to jest "String ..." w języku Java?
- 24. Co to jest "_csv" w języku Python?
- 25. W języku PHP, co to jest Tick?
- 26. Co to jest "\ 00" w języku Python?
- 27. Co to jest mnemonik w języku Java?
- 28. Co to jest kodowanie w języku XML?
- 29. Jak zadeklarować typ zerowy w TypeScript?
- 30. Co to jest odpowiednik C# w dynamicznym C++ w C++?
http://msdn.microsoft.com/en-us/library/1t3y8s4s(v=vs.80).aspx –
http://www.c-sharpcorner.com/UploadFile/PashuSX/NullableTypes04282006114548AM/NullableTypes. aspx –