Я всегда думал, какой из них лучше.
Заботится ли компилятор об улучшении «второго» кода, чтобы его производительность была такой же хорошей, как и у «первого» кода?
Можно ли это обойти, чтобы получите «более производительный» и «оптимизированный» код на в одно и то же время?
Избыточный код/код повышенной производительности:
Код: Выделить всё
string name = GetName(); // returned string could be empty
List myListOfStrings = GetListOfStrings();
if(string.IsNullOrWhiteSpace(name)
{
foreach(string s in myListOfStrings)
Console.WriteLine(s);
}
else
{
foreach(string s in myListOfStrings)
Console.WriteLine(s + " (Name is: " + name);
}
Код: Выделить всё
string name = GetName(); // returned string could be empty
List myListOfStrings = GetListOfStrings();
foreach(string s in myListOfStrings)
Console.WriteLine(string.IsNullOrWhiteSpace(name) ? s : s + " (Name is: " + name);
Пожалуйста, учитывайте, что время выполнения длинного цикла не короткое, потому что я знаю, что когда оно короче, производительность не изменится.
Подробнее здесь: https://stackoverflow.com/questions/187 ... mance-code