C# Nullable tableaux
J'ai une fonction de recherche, mais je voudrais LocationID
être un tableau d'entiers plutôt que juste un simple entier. Je ne suis pas sûr de la façon de le faire puisque je le veux aussi accepter les valeurs null. J'ai regardé pour faire int?[]
mais ensuite j'ai dû vérifier la HasValue
de chaque entrée. Est-il un meilleur moyen?
C'est ce que j'ai actuellement:
public ActionResult Search(string? SearchString, int? LocationId,
DateTime? StartDate, DateTime? EndDate)
OriginalL'auteur Preston | 2013-04-17
Vous devez vous connecter pour publier un commentaire.
Les tableaux sont toujours les types de référence, comme c'est
string
, ils sont donc déjà nullable. Vous avez seulement besoin d'utiliser (et seulement peut utilisation)Nullable<T>
où T est un non nullable type de valeur.Donc, vous voulez probablement:
Noter que j'ai changé les noms des paramètres à suivre .NET conventions de nommage, et changé
LocationId
àlocationIds
pour indiquer que c'est pour de multiples endroits.Vous pourriez aussi envisager de changer le type de paramètre à
IList<int>
ou mêmeIEnumerable<int>
pour être plus général, par exemple,De cette façon l'appelant pouvait passer une
List<int>
par exemple.OriginalL'auteur Jon Skeet
Tableaux sont des types référence, de sorte que vous n'avez pas à faire quoi que ce soit, vous pouvez déjà passer
null
:Une méthode ayant la signature suivante peut être appelée avec tous les paramètres que
null
:Veuillez noter: j'en outre supprimé le point d'interrogation après
string
que c'est un type de référence.OriginalL'auteur Daniel Hilgarth