Quand doit-on utiliser des types nullables en c#?
J'ai été demandé à plusieurs reprises les questions suivantes dans de nombreux entretiens.... Mais ne peut toujours pas expliquer avec un exemple simple...
- Quels sont les types nullables en c#?
- Quand doit-on utiliser des types nullables en c#?
- Pouvez-vous donner un exemple simple?
Des suggestions?
- double possible de stackoverflow.com/questions/1550909/...
Vous devez vous connecter pour publier un commentaire.
De Utilisation De Types Nullables (Guide De Programmation C#) (Lien mis à jour vers 2018)
bool
dansNullable
pourquoi ne pas cocher dansBoolean
- il encore, je me demande pourquoi..Null signifie "pas de valeur" ou "pas de données". Vous utilisez les types nullables si "aucune valeur" est une valeur valide dans le contexte de quel que soit le système desining/aide.
Dans ce cas, le type nullable indique que TryGetTruckCargoWeight() peut renvoyer null. Le sens de ce serait genereally être que les données n'est pas disponible (peut-être il n'y a pas de camion, peut-être qu'il n'a pas été pesé, etc).
Considérons l'exemple suivant:
Un outil paramètres spécifiés via l'INTERFACE utilisateur. Cependant, l'outil peut également être exécuté à partir de la ligne de commande et les paramètres spécifiés dans l'INTERFACE utilisateur peut être remplacée par la ligne de commande. Donc le code est comme suit :
...Processus de ligne de commande, si le paramètre spécifié n':
...plus tard
Chaque fois que vous êtes à l'aide de valeurs désignée pour représenter une valeur nulle:
* Un DateTime minimumvalue pour représenter une valeur de rien
* -1 pour représenter un unset valeur pour un entier
puis un type nullable serait un meilleur choix.
COMME nous le savons tous, il ya deux différents types en C#
•Refrence type
•Type de valeur
Type de référence peut être représenter comme inexistante valeur (NULL) mais Vaue type , cependant, ne peut pas représenter la valeur NULL.
Pour l'e.g
Depuis que la Chaîne est de type référence, vous pouvez la déclarer nulle
Mais si vous essayez de déclarer le type de valeur tels que Int32 à la valeur null, il produceses erreur du compilateur
Pour représenter la valeur null dans un type de valeur, vous devez utiliser une construction appelée un type nullable. Il est représenté à l'aide ? symbole.
Maintenant scénario lorsque les types nullables commanly est utilisé dans la programmation de base de données où calss est la carte à la table avec les valeurs null colonnes.
• Si les colonnes sont de type de référence qui est une Chaîne telle que (adresse électronique et l'adresse du client), il n'est pas un problème, vous pouvez défini comme null en C#
• Mais si les colonnes sont de type de valeur qui est le double de tel que (solde du compte du client), vous ne pouvez pas mapper à C# sans l'aide de types nullables.
Pour l'e.g
//les cartes à une table de Clients dans une base de données
Un exemple de plus:
imaginer, vous devez créer un
GetArticles
méthode dans votre BLL. Cette méthode doit prendre de tels arguments que la date de la période (from
etto
arguments), chaîne de recherche (search
argument) et la catégorie de document (categoryId
argument). Tous ces arguments sont facultatifs. Donc, dans un cas vous souhaitez définir seulementfrom
etsearch
argument, dans d'autres seulementcategoryId
argument.Pour ce faire, vous pouvez créer un grand nombre de surcharges pour
GetArticles
méthode avec les arguments nécessaires combinaison. L'autre façon est de définir la seule méthodeGetArticles(DateTime? from, DateTime? to, string search, int? categoryId)
pour cela. Dans ce cas, si l'argument estnull
il sera ignoré.De cause je sais que sur une nouvelle fonctionnalité
.NET 4.0
appelé les paramètres facultatifs et les arguments nommés mais avant cela, c'était une belle solution pour moi.C# a deux type de types de données. Type de la valeur et les types référence. Chaîne de référence est de type int est le type de valeur. Un type de référence peut être assigné à une valeur null comme
string s = null;
. Mais vous ne pouvez pas affecter une valeur null directement à un nombre entier. Commeint a = null //
Afin de faire le type de valeur d'accepter une valeur nulle, les types nullables sont utilisés. Pour le rendre nullable, un?
est ajouté dansJe pense que si nous parlons du scénario réel lorsque votre table de Base de données contient des valeurs null dans les colonnes, et que vous devez créer des Otd(Objets de Transfert de Données) Db Entité de cartographie. Dans de tels scénarios, vous avez besoin pour obtenir exactement le même type de données de la cartographie dans vous les classes d'Entité, de parvenir À une telle exigence types nullables sont vraiment très utiles pour créer exactement la même cartographie et de permettre à l'utilisateur de facilement travailler dans ce senario.
Ce qui concerne.