2010-02-10 9 views
5

Zastanawiam się, jak napisać liczbę, która musi być wyrażona jako ciąg.BestPractice dla warunków z łańcuchami i liczbami

Na przykład:

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

lub

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

lub

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

lub

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

WinForms lub WebForms? –

+3

@Asad Butt - Dlaczego to ma znaczenie? – Oded

Odpowiedz

9

W przypadku pojedynczego testu, bym osobiście pójść z

if (SelectedItem.Value == "0") 

Nie ma zamieszania, bez ceremonii - mówi dokładnie to, co próbujesz zrobić.

Z drugiej strony, jeśli mają wartość, która powinna być liczbą, a następnie będę reagować na podstawie tej liczby, użyję:

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

Korzystając TryParse.

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

Jeżeli wartość ma być liczbą całkowitą, a to, co powinno być oczywiście używany bo wtedy będę analizować go do int - czyli użyć typu, który jest najbardziej odpowiedni dla rozumieniu danych .

Na przykład, często listy rozwijane są zapełniane z tabeli odnośników do bazy danych - jeśli przechowujesz klucz elementu jako liczbę całkowitą, myślę, że powinieneś konsekwentnie traktować go jako jeden. Podobnie, jeśli klucz wybranego elementu jest przechowywany w bazie danych ponownie, to i tak musi zostać przekonwertowany na int.

Powiązane problemy