Member 13930444 Ответов: 1

Есть ли способ сделать это короче ?


Просто любопытно, может ли это быть похоже на 1 строку или короче. В принципе, я делаю текстовую игру, и вы можете внести "наличные" или "монеты" в "банк", а код у меня есть:

 int deposited = int.Parse(msg[1]);
stats[user].Cash = stats[user].Cash - deposited;
stats[user].Bank = stats[user].Bank + deposited;


Просто интересно, можно ли его укоротить

Что я уже пробовал:

 int deposited = int.Parse(msg[1]);
stats[user].Cash = stats[user].Cash - deposited;
stats[user].Bank = stats[user].Bank + deposited;

1 Ответов

Рейтинг:
2

Richard MacCutchan

Незначительно, но вы также должны сделать его лучше:

int deposited = 0;
if (int.TryParse(msg[1], out deposited))
{
    stats[user].Cash -= deposited;
    stats[user].Bank += deposited;
}
else
{
    throw some error to indicate the input was not valid
}


Eric Lynch

Основываясь на этом, чтобы сделать его немного короче, я бы также инвертировал условное выражение и использовал встроенную переменную (C# 7 или лучше)…

если (!int.TryParse(msg[1], out int)))
кинуть исключение, чтобы указать неверный ввод;

статистика[пользователь].Наличные -= депонированные;
статистика[пользователь].Банк += депонированный;

George Swan

Разве в заявлении Ричарда "если" не хватает заключительной скобки?

Richard MacCutchan

О-О, спасибо, хорошо подмечено.