C точки зрения производительности , какой из вызовов выполняется быстрее исполняющей подсистемой
.Net Framework 2.0
Вариант 1:
string s = "";
if (String.IsNullOrEmpty(s) == true)
{
//...код
}
Вариант 2:
if (s == "")
{
//...код
}
Заранее спасибо.
Моё мнение такое:
_>Вариант 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
Здравствуйте, eddy_cs, Вы писали:
_>C точки зрения производительности , какой из вызовов выполняется быстрее исполняющей подсистемой
_>.Net Framework 2.0
string s = "";
if (String.IsNullOrEmpty(s))
{
//...код
}
Какой смысл в проверке булевской величины на равенство истине? Не проще в if сразу поставить эту булевскую величину?