Wann sollte man Nullable-Typen in c # verwenden?
Wurde ich wiederholt aufgefordert, die folgenden Fragen in vielen interviews.... Aber immer noch nicht erklären kann diese mit einem einfachen Beispiel...
- Was von auf null festlegbaren Typen in c#?
- Wann sollte man verwenden von auf null festlegbaren Typen in c#?
- Können Sie geben ein einfaches Beispiel?
Irgendwelche Vorschläge?
Kommentar zu dem Problem
mögliche Duplikate von stackoverflow.com/questions/1550909/...
InformationsquelleAutor der Frage Chendur Pandian | 2010-04-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vom Verwenden Von Auf Null Festlegbaren Typen (C# - Programmierhandbuch) (Link aktualisiert circa 2018)
InformationsquelleAutor der Antwort Adriaan Stander
Null bedeutet "kein Wert" oder "keine Daten". Sie verwenden von auf null festlegbaren Typen als "kein Wert" ist ein Gültiger Wert im Kontext von was auch immer system Sie desining/mit.
In diesem Fall, die nullable-Typ gibt an, dass TryGetTruckCargoWeight() kann null zurückgeben. Die Bedeutung dieses würde genereally werden, dass die Daten nicht verfügbar ist (vielleicht gibt es keine LKW, vielleicht ist es noch nicht gewogen, etc).
InformationsquelleAutor der Antwort Sander
Betrachten Folgendes Beispiel:
Einem tool hat die Einstellungen über die Benutzeroberfläche. Jedoch, das tool kann auch von der Befehl-Linie und der Einstellungen in der Benutzeroberfläche geändert werden kann über die Kommandozeile. Also der code ist wie folgt :
...Prozess-Befehlszeile, wenn die angegebenen Einstellungen tun:
...später
InformationsquelleAutor der Antwort logicnp
Wann immer Sie sind mit ausgewiesenen Werte stellen einen null-Wert:
* Ein DateTime-minimumvalue repräsentieren einen Wert von nichts
* -1 darstellen unset Wert für einen integer
dann eine nullable-Typ wäre eine bessere Wahl.
InformationsquelleAutor der Antwort Kb.
WIE wir alle wissen, es gibt zwei verschiedene Typen in C#
•Refrence Typ
•Wert-Typ
Referenz-Typ sein kann, darstellen, als nicht existent Wert (NULL), aber Vaue-Typ , jedoch nicht die Darstellung den Wert NULL.
Für e.g
Da String ist Referenztyp können Sie deklarieren es als null
Aber wenn Sie versuchen zu erklären, Wert Typ als Int32 zu null-es produceses compiler-Fehler
Darzustellen null in einen Wert geben, müssen Sie ein spezielles Konstrukt namens eine nullable-Typ. Es ist dargestellt ? symbol.
Jetzt Szenario, wenn nullable-Typen commanly in Datenbank-Programmierung, wo calss ist die Karte auf den Tisch mit dem nullable Spalten.
• Wenn die Spalten Referenz-Typ, der Zeichenfolge, so wie (E-Mail-Adresse und Anschrift des Kunden), es ist kein problem, da können Sie definierte es als die null in C#
• Aber wenn die Spalten Wert-Typ, Doppel-wie (Kunden-account balance), die Sie nicht zuordnen C# ohne verwenden von auf null festlegbaren Typen.
Für e.g
//Karten an einen Kunden-Tabelle in eine Datenbank
InformationsquelleAutor der Antwort vijay shiyani
Noch ein Beispiel:
vorstellen, müssen Sie erstellen eine
GetArticles
Methode in Ihrer BLL. Diese Methode sollte dann solche Argumente, wie Datum-Zeit (from
undto
Argumente), Suche string (search
argument) und belegtyp (categoryId
argument). All diese Argumente sind optional. So in einem Fall, den Sie definieren wollen nurfrom
undsearch
argument, in anderen nurcategoryId
argument.Dies zu tun, können Sie eine Menge von überladungen für
GetArticles
Methode mit notwendigen Argumente Kombination. Der andere Weg ist, um zu definieren, die nur eine MethodeGetArticles(DateTime? from, DateTime? to, string search, int? categoryId)
. In diesem Fall, wenn argument istnull
wird übersprungen.Ursache weiß ich über eine neue Funktion in
.NET 4.0
genannt optionale Parameter und benannte Argumente aber vorher war es ein nettes workaround für mich.InformationsquelleAutor der Antwort Alex
C# hat zwei Arten von Datentypen. Wert-Typ und Referenz-Typen. String ist reference type und int Wert geben. Ein Referenz-Typ zugeordnet werden können, mit einem null-Wert wie
string s = null;
. Aber Sie können nicht zuweisen einen null-Wert direkt auf eine ganze Zahl. Wieint a = null //
So machen Sie den Werttyp akzeptiert einen null-Wert, nullable-Typen verwendet werden. Machen Sie null-Werte zulässt, eine?
HinzugefügtInformationsquelleAutor der Antwort Shetty
InformationsquelleAutor der Antwort Mika Kolari
Ich denke, wenn wir reden über real-world-Szenario, wenn Sie Ihre Datenbank-Tabelle enthält nullwertfähige Spalten, die in es, und Sie müssen zum erstellen von DTOs(Data Transfer Objects) als Db-Entity mapping. In solchen Szenarien müssen Sie exakt gleichen Datentyp-Zuordnung in Sie Entity-Klassen, Um eine solche Anforderung nullable-Typen sind wirklich sehr nützlich, um genau die gleiche Zuordnung und erlaubt dem Anwender, problemlos in diesem senario.
Grüße.
InformationsquelleAutor der Antwort Shoaib Shaikh