Мне удалось решить эту проблему в WSL с помощью многострочного форматирования для bash следующим образом:
curl -i -XPOST \
> 'http://localhost:8086/query?db=test' \
> --date-urlencode \
> "q=DROP SERIES FROM WHERE "unit"='hPa'"
Во-первых, обратите внимание, что строки в.NET очень отличаются от строк, сохраненных на неуправляемых языках (таких как C++)... В CLR длина строки (в символах и в байтах) на самом деле хранится в памяти так, чтобы CLR знал, насколько большой блок памяти (массив символов) содержащий строку. Это сделано после создания строки и не становится измененным, учитывая, что System.String
тип неизменен.
В C++ это довольно отличается, поскольку длина строки обнаружена путем чтения вплоть до первого нулевого символа. Из-за пути использование памяти работает в CLR, можно по существу рассмотреть то получение Length
свойство строки точно так же, как получает int
переменная. Стоимость производительности здесь будет абсолютно минимальной, если это - то, что Вы рассматриваете.
Если Вы хотите читать больше о строках в.NET, попробуйте статью Jon Skeet о теме - это, кажется, имеет все подробности, которые Вы могли бы когда-либо хотеть знать о строках в.NET.
Длина строки не вычисляется, она известна во время создания. Так как Строка неизменна, не будет никакой потребности в вычислении ее позже.
A. СЕТЕВАЯ строка хранится как поле, содержащее количество символов и соответствующую серию unicode символов.
Строки.NET снабжены длиной, предварительно вычисленной и сохраненной в начале внутренней структуры, таким образом.Length свойство просто выбирает то значение, делая ее O (1) функция.
Похоже, что это - свойство строки, которая, вероятно, установлена в конструкторе. Так как это не функция, я сомневаюсь, что это вычисляется при вызове его. Они просто получают значение свойства Length.