Comment puis-je convertir des nullable int d'une chaîne de caractères qui sera sans danger pour les ordinateurs dans des endroits différents?
Je suis de la conversion d'un nullable integer
à un string
, et Resharper me prévient de l'utilisation InvariantCulture.
shipment.ShipmentID.ToString()
Un rapide Alt-Enter, Enter plus tard, me donne ceci:
shipment.ShipmentID.ToString(CultureInfo.InvariantCulture)
Malheureusement, Resharper n'est pas satisfaite, et suggère la même chose, qui n'a pas de sens pour moi.
shipment.ShipmentID.ToString(CultureInfo.InvariantCulture,
CultureInfo.InvariantCulture)
ToString() sur le nullable int de ne pas construire, ce qui me donne un message d'erreur indiquant Pas de surcharge de la méthode "ToString" prend 1 arguments.
Non nullable ints de se comporter différemment.
int requiredInt = 3;
//no Resharper or compiler warning
var stringFromRequiredInt = requiredInt.ToString(CultureInfo.InvariantCulture);
Que dois-je faire pour convertir un nullable int
à un string
qui seront coffre-fort pour les ordinateurs dans des endroits différents?
Ce qui se passe lorsque vous utilisez l'expédition.ShipmentID.De la valeur? Avec des types nullables, j'ai l'habitude de vérifier la valeur null à l'aide de l' .HasValue boolean et ensuite utiliser .De la valeur.
OriginalL'auteur Jon Crowell | 2012-04-12
Vous devez vous connecter pour publier un commentaire.
Nullable<T>
n'ont pas deToString()
surcharge avec des arguments; ReSharper n'est pas tout à fait la manipulation adéquate à la situation.Depuis
default(Nullable<int>).ToString()
retournestring.Empty
, vous pouvez faire ReSharper heureux comme ceci:Sinon:
OriginalL'auteur phoog
Cochez cette lien.
Mise à JOUR: Donc l'un des principaux objectifs de l'utiliser peut être par exemple des " si " déclaration de comparaison.
OriginalL'auteur Dave