Ответ 1
Я предпочитаю "1/0", потому что он не подпадает под требования локализации.
bool isTrue = Request.QueryString["value"] == "1";
Кто-нибудь использует "true" или "false" при установке параметра строки запроса для bool? или большинство людей используют "1" или "0". Мне было бы интересно узнать об этом консенсусе.
Я предпочитаю "1/0", потому что он не подпадает под требования локализации.
bool isTrue = Request.QueryString["value"] == "1";
Большинство сайтов используют true/false в своих строках запроса, поэтому вам не придется переключаться с 0/1 на boolean в вашем коде позади (если утверждение или что-то еще). Номер больше используется для идентификаторов.
Вам тоже не нужно использовать. Параметр строки запроса не обязательно должен иметь значение. У вас может быть только такой uri: http://someserver.com/somepage.aspx?SortById=&day=Monday
а затем в вашем коде:
if(Request.QueryString.AllKeys.Contains("SortById")) ...
Это не имеет значения, если честно. Я никогда не использовал bool в строке запроса, но я бы выбрал вариант "1".
пока вы подтверждаете свой ввод, это должно быть менее важным. оба могут быть проанализированы в булево значение.
Имейте в виду, что параметр querystring может легко измениться с кем-то еще в его браузере.
"true" или "false" является более читаемым. 1 или 0 сохраняет символ в вашем URL-адресе. Я предпочитаю 0 или 1. Для преобразования я использую методы расширения:
public static bool GetBoolVal(this HttpRequest r, string name)
{
return r[name] == "1";
}
bool yesnot = Page.Request.GetBoolVal("yesno");
(псевдокод, не проверен)
Используйте "0" или "1" точно! вы можете как устанавливать, так и извлекать эти логические значения гораздо более простым способом в Javascript путем принудительного форсирования с помощью оператора "+", например.
var boolVal = true;
// this sends user to 'https://www.google.com?bool=1' (uses ES6 template strings)
window.location = `https://www.google.com?bool=${+boolVal}`;
var query = queryParsingFunctionProbablyIncludedInYourFramework(window.location.search)
// the below will yield the boolean "true" and "false",
// without the "!!" this would evaluate to a numerical zero or 1
// which would still evaluate as false and true respectively in a
// boolean expression as you'd want
!!+query.bool // evaluates to true in this case
невозможно преобразовать строку "true" или "false" непосредственно в логическое "true" или "false", поэтому я думаю, что вышеупомянутый экзамен намного лучше