2010-02-10 9 views
5

Je me demande simplement comment écrire un nombre qui doit être exprimé en tant que chaîne.BestPractice pour les conditions avec des chaînes et des nombres

Par exemple:

if (SelectedItem.Value == 0.ToString()) ... 

ou

if (SelectedItem.Value == "0") ... 

ou

public const string ZeroNumber = "0"; 
if (SelectedItem.Value == _zeroNumber) ... 

ou

if (Int.Parse(SelectedItem.Value) == 0) 
+0

WinForms ou WebForms? –

+3

@Asad Butt - Pourquoi est-ce important ici? – Oded

Répondre

9

Pour un seul test, je personnellement aller avec

if (SelectedItem.Value == "0") 

Il n'a pas de chichi, pas de cérémonie - il dit exactement ce que vous essayez de faire.

D'autre part, si j'ai une valeur qui doit être un nombre, puis je réagis en fonction de ce nombre, j'utiliser:

int value; 
// Possibly use the invariant culture here; it depends on the situation 
if (!int.TryParse(SelectedItem.Value, out value)) 
{ 
    // Throw exception or whatever 
} 
// Now do everything with the number directly instead of the string 
1

Utilisez TryParse.

string value = "123"; 
int number; 
bool result = Int32.TryParse(value, out number); 
if (result) 
{ 
    ... 
2

Si la valeur est censée être un entier, et qui est ce qu'il doit être naturellement utilisé pour alors je parse à un int - à savoir utiliser le type qui est le plus approprié pour la signification des données . Par exemple, souvent les listes déroulantes sont remplies à partir d'une table de recherche de base de données - si cela stocke la clé de l'élément comme un entier, alors je pense que vous devriez toujours le gérer comme un seul. De même, si la clé de l'élément sélectionné est à nouveau stockée dans la base de données, elle doit être convertie en un int de toute façon.

Questions connexes