Я получаю данные запроса в ASP.NET C#, и мне нужно как его строковое значение, так и значение int.Parse (если оно может быть проанализировано). (В примере я пропуск проверки нулевых значений, поскольку это не имеет никакого влияния на мой вопрос)TryParse in if condition
value = Request.QueryString["value"];
id = int.TryParse(Request.QueryString["value"], out id)
выше код делает то, что мне нужно, но я только что получил интересно, если я мог бы написать это в одном предложении, так что я попытался это:
if (int.TryParse(Request.QueryString["value"], out id))) value=Request.QueryString["value"];
в этом случае я не получаю строковое значение, если оно не может быть разобрано, но я получить его разобранное значение.
Любые предложения? У меня нет проблем с моим кодом. Я просто спрашиваю из любопытства, что если это можно сделать в одной строке кода.
«TryParse» в значительной степени предназначен для перехода в условие 'if', поскольку он возвращает' bool'. Ваш пример присвоения 'TryParse' значению' id' является бессмысленным. Не преследуйте ошибочность однострочного/сжатого кода. Сделайте свой код понятным и понятным для следующего разработчика, тот, кто должен исправить ваш код. –
это не должно работать .. int.TryParse возвращает bool, первый раздел кода не имеет для меня никакого смысла. –
Возможно, это только я, но ваши два набора кода не имеют смысла как «альтернативы», а TryParse возвращает bool, поэтому зачем присваивать ему id, который также получает вашу ценность ...? – crashmstr