Для длинных / очень длинных строковых значений вы хотели бы использовать метод POST вместо GET!
для хорошей кодировки вы можете попробовать urlencode () / urldecode ()
или htmlentities () / html_entity_decode ()
. переводится в браузер как '/' char (разделитель каталогов). Если вы используете только urlencode, вы можете заменить его.
Я не рекомендую gzcompress для параметров GET.
Там Interlocked.Exchange . Это делается в потокобезопасном атомарном вызове.
Редактировать после комментариев:
Чтобы прояснить, как это работает с помощью Interlocked.Exchange, вы должны сделать:
left = Interlocked.Exchange(ref right, left);
Это будет эквивалент (фактически) для do:
Swap(ref left, ref right);
Однако Interlocked.Exchange делает это как атомарную операцию, поэтому она безопасна для потоков.
Нет, в фреймворке такого метода нет. Вероятно, причина в том, что встроенная функция не приносит особой пользы, и вы можете очень легко (как и сделали) добавить ее самостоятельно. Это также требует использования параметра ref
в качестве параметра, что значительно ограничит варианты использования. Например, вы не могли этого сделать:
List<int> test;
// ...
Swap(ref test[0], ref test[1]); // won't work, it's an indexer, not an array