Puis-je formater les valeurs NULL dans la chaîne.Format?
Je me demandais si il y a une syntaxe pour la mise en forme des valeurs NULL dans la chaîne.Format, comme ce qu'Excel utilise
Par exemple, à l'aide d'Excel je pourrais spécifier un format de valeur de {0:#,000.00;-#,000.00,NULL}
, ce qui signifie que l'affichage de la valeur numérique en tant que format de nombre si le résultat est positif, le format des nombres entre parenthèses si le résultat est négatif, ou NULL si la valeur est null
string.Format("${0:#,000.00;(#,000.00);NULL}", someNumericValue);
Modifier
Je suis à la recherche pour la mise en forme NULL
/Nothing
valeurs pour tous les types de données, et pas seulement numériques.
Mon exemple est en fait incorrect parce que j'ai tort, Excel utilisé le 3e paramètre si la valeur est NULLE, mais c'est en fait utilisé lorsque la valeur est 0. Je vais la laisser là parce que c'est la chose la plus proche que je peux penser à ce que j'espérais faire.
Je suis en espérant éviter le nul de la coalescence de l'opérateur parce que je suis en train d'écrire des enregistrements de journal, et les données ne sont pas généralement une chaîne
Il serait beaucoup plus facile d'écrire quelque chose comme
Log(string.Format("Value1 changes from {0:NULL} to {1:NULL}",
new object[] { oldObject.SomeValue, newObject.SomeValue }));
que de l'écrire
var old = (oldObject.SomeValue == null ? "null" : oldObject.SomeValue.ToString());
var new = (newObject.SomeValue == null ? "null" : newObject.SomeValue.ToString());
Log(string.Format("Value1 changes from {0} to {1}",
new object[] { old, new }));
null
(Nothing
en Visual Basic) ou0
(zéro)?- Je suis à la recherche pour la mise en forme
null
/Nothing
- Désolé, je pensais en format Excel les valeurs NULL avec le 3e paramètre. C'est en fait des zéros. Je vais mettre à jour ma question, mais je pars de l'exemple d'Excel dans car il est la chose la plus proche que je peux penser à ce que je cherche.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez définir un mise en forme personnalisée qui renvoie
"NULL"
si la valeur estnull
et sinon la mise en forme par défaut de la chaîne, par exemple:De sortie:
De Mise En Forme Personnalisée:
string.Format(formatter, "Test: {0}, {1}, {2}", true, 10, null, "Hello")
il retourneTest: true, 10, , "Hello"
.Je ne pense pas qu'il y ait quelque chose dans
String.Format
qui vous permettra de spécifier un format particulier pournull
cordes. Une solution de contournement consiste à utiliser le null-coalescence de l'opérateur, comme ceci:??
parce que les données n'est généralement pas une chaîne"NULL"
même si le type de données est un nombre ou une date. Je ne peux pas utilisersomeNumber ?? "NULL"
, car la chaîne de"NULL"
n'est pas le même type de données quesomeNumber
Est-ce que vous souhaitez?
test ?? "NULL"
??
parce que les données n'est généralement pas une chaîneIl ressemble à la Chaîne.Format pour .NET actes de la même manière que Excel, c'est à dire, vous pouvez utiliser
;
séparateur pour être positif, négatif, et les valeurs à 0, mais pas NULLE: http://msdn.microsoft.com/en-us/library/0c899ak8.aspx#SectionSeparator.Vous sera probablement juste être capable de gérer la valeur null manuellement:
Vous pouvez utiliser une méthode d'extension:
Ensuite dans votre code, vous pouvez le faire: