BestPractice для условий со строками и числами - PullRequest
5 голосов
/ 10 февраля 2010

Мне просто интересно, как написать число, которое должно быть выражено в виде строки.

Например:

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

или

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

или

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

или

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

Ответы [ 3 ]

9 голосов
/ 10 февраля 2010

Для одного теста я бы лично пошел с

if (SelectedItem.Value == "0")

В нем нет суеты, нет церемоний - там точно сказано, что вы пытаетесь сделать.

С другой стороны, если у меня есть значение, которое должно быть числом, и я буду реагировать на это число, я бы использовал:

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
2 голосов
/ 10 февраля 2010

Если значение подразумевается как целое число, и это то, для чего оно должно использоваться естественным образом, тогда я бы проанализировал его для типа int, то есть использовал бы тип, который наиболее подходит для значения данных.

Например, часто выпадающие списки в любом случае заполняются из таблицы поиска в базе данных - если в ней ключ элемента хранится как целое число, то я думаю, что вы должны последовательно обрабатывать его как единое целое. Аналогичным образом, если ключ выбранного элемента снова сохраняется в БД, то в любом случае его необходимо преобразовать в int.

1 голос
/ 10 февраля 2010

Использование TryParse .

string value = "123";
int number;
bool result = Int32.TryParse(value, out number);
if (result)
{
    ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...