Если одно из существующих соединений исчезнет, будет доступно следующее входящее соединение.
Итак, если у вас есть приложение для чата, и в чате есть 100 активных пользователей, следующий пользователь не будет быть в состоянии присоединиться, и клиент Firebase выдаст ошибку (LIMIT_EXCEEDED), когда они попробуют. Если один из активных пользователей уходит (отключает, закрывает вкладку своего браузера и т. Д.), Следующий пользователь будет иметь возможность подключаться.
Это сделано во время компиляции. Это точно эквивалентно "string1string2string3".
предположим Вы имеете:
string x = "string1string2string3"
string y = "string1" + "string2" + "string3"
компилятор выполнит соответствующее интернирование таким образом, что X и Y относятся к тем же объектам.
РЕДАКТИРОВАНИЕ: существует большой разговор [приблизительно 111] в ответах и комментариях. Многие разработчики, кажется, полагают, что конкатенация строк должна всегда быть сделанной с StringBuilder
. Это - сверхобобщение - это стоит понять , почему StringBuilder
хорошо в некоторых ситуациях, а не в других .
Если пробел не важен тогда, можно использовать символ ESC для записи многострочных строк в коде. Это полезно, если у Вас есть запрос в Вашем коде, например:
string query = @"SELECT whatever
FROM tableName
WHERE column = 1";
Это даст Вам строку с разрывами строки и вкладками, но для запроса, который не имеет значения.
Ваш пример будет связан во время компиляции. Все встроенные строки и строковые переменные константы связываются во время компиляции.
Что-то для учета - то, который включая любые строки только для чтения задержит concatting ко времени выполнения. строка. Пустой и Среда. NewLine являются оба строковыми переменными только для чтения.
это действительно зависит от того, в чем Вы нуждаетесь. Обычно, если Вам будет нужно к строкам concat, лучшая производительность во времени выполнения будет достигнута при помощи StringBuilder. При обращении в исходном коде чего-то как var str = "String1" + "String2", это будет преобразователь в строку str = "String1String2" на компиляции. В этом случае у Вас нет конкатенации наверху
Конкатенация сделана во время компиляции, таким образом, нет никакого времени выполнения наверху.
StringBuilder является хорошим способом пойти, если у Вас есть многие (больше, чем приблизительно четыре) строки для конкатенации. Это быстрее.
Используя Строку. Concat в Вас пример выше сделан во время компиляции. Так как они - литеральные строки, они оптимизированы компилятором.
, Если Вы однако используете переменные:
string a = "string1";
string b = "string2";
string c = a + b;
Это сделано во времени выполнения.
StringBuilder будет Вашим самым быстрым подходом при использовании какой-либо суммы строк.
http://dotnetperls.com/Content/StringBuilder-1.aspx
, Если Вы просто делаете, некоторые представляют в виде строки (5 или меньше, хорошее правило), скорость не будет иметь значения, какого вида из конкатенации Вы используете.
Есть способ сделать это. Мой фаворит использует строковый метод из C #. Пример первый:
string s = string.Format ("{0} {1} {0}", "Hello", "By"); результат s = "Hello By Hello";