|
|
|
if(str.Length == 0) или if(str == "")
|
|||
|---|---|---|---|
|
#18+
Если в плане производительности разницы нет, то в плане "как НЕ надо писать" - как правильнее? Вычислять длину и сравнивать с нулем или явно сравнивать две строки, чтобы проверить мою строку "str"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2011, 10:53:49 |
|
||
|
if(str.Length == 0) или if(str == "")
|
|||
|---|---|---|---|
|
#18+
IsNullOrEmpty ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2011, 10:55:17 |
|
||
|
if(str.Length == 0) или if(str == "")
|
|||
|---|---|---|---|
|
#18+
Винни-Бух, string.IsNullOrEmpty(string), string.IsNullOrWhitespace(string) не рассматривали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2011, 10:56:06 |
|
||
|
if(str.Length == 0) или if(str == "")
|
|||
|---|---|---|---|
|
#18+
if(str == "") -> if(str==string.Empty) (для коллекции) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2011, 11:28:18 |
|
||
|
if(str.Length == 0) или if(str == "")
|
|||
|---|---|---|---|
|
#18+
В моей задаче string'овая переменная уже создана. И нужно только выяснить ее длину. Пробельные символы есть или нет - это другой вопрос. Точнее, тут нужно всего лишь порядок действий определить: сначала убираем пробелы, потом - смотрим длину, или наоборот. Что же касается IsNullOrEmpty, то эта проверка не всегда подходит: если у вас в строке QueryString есть параметр и он имеет нулевую длину, или состоит только из пробелов - то одна бизнес-логика, а вот если параметра ВООБЩЕ нет, то никакие преобразования чего-то там в пустую строку могут быть и не нужны - ибо тут другая бизнес-логика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2011, 11:29:53 |
|
||
|
if(str.Length == 0) или if(str == "")
|
|||
|---|---|---|---|
|
#18+
to Ex_Soft: вот здесь не понял: "(для коллекции)" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2011, 11:31:04 |
|
||
|
if(str.Length == 0) или if(str == "")
|
|||
|---|---|---|---|
|
#18+
Винни-БухЕсли в плане производительности разницы нет, то в плане "как НЕ надо писать" - как правильнее? Вычислять длину и сравнивать с нулем или явно сравнивать две строки, чтобы проверить мою строку "str"? Вычислять длину строки null или сравнивать её с пустой строкой пробовали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2011, 11:47:37 |
|
||
|
if(str.Length == 0) или if(str == "")
|
|||
|---|---|---|---|
|
#18+
to Starlex: Что-то нас не туда понесло... Анализ на null уже пройден, имеем переменную определенного типа - string. Пробельные символы съедены. Вопрос (чисто эстетический): как проверять строку на нулевую строку? Проверить длину (я склоняюсь к этому способу) или же написать вот так: if(str == String.Empty), ведь if(str == "") только лохи пишут... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2011, 12:29:41 |
|
||
|
if(str.Length == 0) или if(str == "")
|
|||
|---|---|---|---|
|
#18+
И еще у вас странная фраза: "Вычислять длину строки null" - длину можно вычислить у строки, а у неопределенного значения длины быть не может. Как бы мы ни старались преобразовать его в строку - будет ошибка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2011, 12:35:56 |
|
||
|
if(str.Length == 0) или if(str == "")
|
|||
|---|---|---|---|
|
#18+
Винни-Бухto Starlex: Что-то нас не туда понесло... Анализ на null уже пройден, имеем переменную определенного типа - string. Пробельные символы съедены. Вопрос (чисто эстетический): как проверять строку на нулевую строку? Проверить длину (я склоняюсь к этому способу) или же написать вот так: if(str == String.Empty), ведь if(str == "") только лохи пишут... те что не лохи во время анализа на null проверили и на empty ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2011, 12:38:53 |
|
||
|
if(str.Length == 0) или if(str == "")
|
|||
|---|---|---|---|
|
#18+
to Парамон: В общем случае путь от объекта к строке - не очевиден. В жизни всякое бывает. Поэтому мух от котлет мы отделяем: на null проверяем, покуда держим в руках объект, а уж пробелы-длины-символы - это удел строк ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2011, 12:50:54 |
|
||
|
if(str.Length == 0) или if(str == "")
|
|||
|---|---|---|---|
|
#18+
Винни-Бух, бывает, тогда я за String.Empty потому что вариант как "" и все волшебные стринги имеет потенциал стать " " или "' или хз, также "" создает объект но это мелочь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2011, 13:18:03 |
|
||
|
if(str.Length == 0) или if(str == "")
|
|||
|---|---|---|---|
|
#18+
Угу. А я - за if(str.Length == 0), потому как не надо сравнивать с другим объектом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2011, 14:02:43 |
|
||
|
if(str.Length == 0) или if(str == "")
|
|||
|---|---|---|---|
|
#18+
оффво людям заняться нечем... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2011, 14:03:41 |
|
||
|
if(str.Length == 0) или if(str == "")
|
|||
|---|---|---|---|
|
#18+
из этих двух вариантов : 1. if(str.Length == 0) 2. if(str == "") конечно третий (от Ex_Soft): if(str==string.Empty) ибо 2й вариант компилится в оперирование с памятью бо "" - переменная, а третий в оперирование с регистрами, бо string.Empty компилится в константу. соответственно 3й вариант короче в коде (хоть MSIL хоть ASM хоть машкод) и быстрей по времени. опять же согласен с Парамоном насчет " ", "'", "' и иже с ними.... стринги зло )) нормальные люди вобще стринги не стравнивают - их описывают костантами и сравнивают константы (ну конечно если это не единственное сравнение весьма специфичного стринга во всем проекте, и даже в этом случае по хорошему - лучше через константы) а еще лучше посмотреть в сторону IsNullOrWhitespace (по совету Abstraction) бо тем самым избегаем необходимости тримить пробелы + пользуемся оптимизированым кодом встроенной функции проверки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2011, 01:55:22 |
|
||
|
if(str.Length == 0) или if(str == "")
|
|||
|---|---|---|---|
|
#18+
user404ибо 2й вариант компилится в оперирование с памятью бо "" - переменная, а третий в оперирование с регистрами, бо string.Empty компилится в константу. соответственно 3й вариант короче в коде (хоть MSIL хоть ASM хоть машкод) и быстрей по времени. Фантазёр ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2011, 09:08:09 |
|
||
|
if(str.Length == 0) или if(str == "")
|
|||
|---|---|---|---|
|
#18+
user404ибо 2й вариант компилится в оперирование с памятью бо "" - переменная, а третий в оперирование с регистрами, бо string.Empty компилится в константу. соответственно 3й вариант короче в коде (хоть MSIL хоть ASM хоть машкод) и быстрей по времени. на самом деле, чтоб понять почему лучше сравнивать пустые строки с string.Empty надо знать как хранятся строки и как они сравниваются и подумать над тем, что string.Empty описана в другой сборке и на что это повлияет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2011, 13:05:12 |
|
||
|
if(str.Length == 0) или if(str == "")
|
|||
|---|---|---|---|
|
#18+
Жесть2й вариант компилится в оперирование с памятью бо "" - переменная Дикие мысли, разрывающие моск на части ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2011, 13:41:27 |
|
||
|
if(str.Length == 0) или if(str == "")
|
|||
|---|---|---|---|
|
#18+
Измерять длину на 0 быстрее, т.к. длина строки записывается в поле, а не пересчитывается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2011, 15:56:48 |
|
||
|
if(str.Length == 0) или if(str == "")
|
|||
|---|---|---|---|
|
#18+
МСУДикие мысли, разрывающие моск на части еще не разорвало? изложи свой вариант ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2011, 17:51:47 |
|
||
|
if(str.Length == 0) или if(str == "")
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2011, 19:33:28 |
|
||
|
if(str.Length == 0) или if(str == "")
|
|||
|---|---|---|---|
|
#18+
нужно смотреть сгенеренный ассемблер, а не msil давай ещё раз с выводами и заодно, раз уж там три вызова трех функций, надо проанализировать сложность этих самых функций, а то +-1 инструкция ни на что не повлияет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2011, 19:43:15 |
|
||
|
if(str.Length == 0) или if(str == "")
|
|||
|---|---|---|---|
|
#18+
автордавай ещё раз с выводами у тебя в руках те же инструменты, что и всех - тч. слово за тобой! ;) автори заодно, раз уж там три вызова трех функций, надо проанализировать сложность этих самых функций, а то +-1 инструкция ни на что не повлияет ни одного вызова функций на скрине НЕТУ! (они там и не нужны вовсе) + сложность функций прикреплена к тому же скрину (будь внимательнее)! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2011, 20:48:20 |
|
||
|
if(str.Length == 0) или if(str == "")
|
|||
|---|---|---|---|
|
#18+
гыыы... - подстава!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2011, 21:24:00 |
|
||
|
if(str.Length == 0) или if(str == "")
|
|||
|---|---|---|---|
|
#18+
в общем str.Length победитель ! улучшаю версию на str.Equals(string.Empty), это более оптимизированно чем оператор ==, так что фторой ) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2011, 12:32:01 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=37443384&tid=1360639]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
85ms |
get tp. blocked users: |
2ms |
| others: | 230ms |
| total: | 424ms |

| 0 / 0 |
