Проверка string на пустое значение
От: eddy_cs Россия  
Дата: 17.04.07 16:20
Оценка:
C точки зрения производительности , какой из вызовов выполняется быстрее исполняющей подсистемой
.Net Framework 2.0

Вариант 1:

string s = "";
if (String.IsNullOrEmpty(s) == true)
{
//...код
}

Вариант 2:
if (s == "")
{
//...код
}

Заранее спасибо.
Re: Проверка string на пустое значение
От: Аноним  
Дата: 17.04.07 16:36
Оценка:
Моё мнение такое:

_>Вариант 1:


_> string s = "";

_> if (String.IsNullOrEmpty(s) == true)
_> {
_> //...код
_> }

Здесь 3 операции (по максимуму если):

1. вызов метода IsNullOrEmpty()
2. внутри метода проверка на null
3. проверка длины внутеннего буфера на 0

_>Вариант 2:

_> if (s == "")
_> {
_> //...код
_> }

_> Заранее спасибо.


Здесь 4 операции:

1. вызов оператора == (метод op_Equality())
2. получение длины внутреннего буфера переменной s
3. получение длины внутреннего буфера константы ""
4. сравнение по длине:

return (length1 == length2 ? length1 == 0 : false);


imho, первый вариант лучше, но только в том случае, если требуеться именно такая проверка, которую производит этот метод. Если null требуеться исключить из проверки, то я бы предпочёл такую проверку

.Length == 0
Re: Проверка string на пустое значение
От: anton_t Россия  
Дата: 17.04.07 16:59
Оценка: +2
Здравствуйте, eddy_cs, Вы писали:

_>C точки зрения производительности , какой из вызовов выполняется быстрее исполняющей подсистемой

_>.Net Framework 2.0

string s = "";
if (String.IsNullOrEmpty(s)) 
{
//...код
}


Какой смысл в проверке булевской величины на равенство истине? Не проще в if сразу поставить эту булевскую величину?
Re: Проверка string на пустое значение
От: fmiracle  
Дата: 18.04.07 09:43
Оценка: +1
Здравствуйте, eddy_cs, Вы писали:

_>C точки зрения производительности , какой из вызовов выполняется быстрее исполняющей подсистемой .Net Framework 2.0


В первую очередь они делают разные вещи.

Во вторую — там даже если и будет разница, то это такая охота на микробов, эффект от которой реальном коде никогда не заметишь.

IsNullOrEmpty(description) нагляднее чем description == null || description.Length == 0
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.