- 1
- 2
- 3
- 4
- 5
- 6
- 7
while (f != null && !string.IsNullOrEmpty(f.FileName) && f.ContentLength != 0)
{
if (f != null && !string.IsNullOrEmpty(f.FileName) && f.ContentLength != 0)
{
// ...
}
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+136
while (f != null && !string.IsNullOrEmpty(f.FileName) && f.ContentLength != 0)
{
if (f != null && !string.IsNullOrEmpty(f.FileName) && f.ContentLength != 0)
{
// ...
}
}
Проверка на всякий случай
Lure Of Chaos 02.02.2011 14:35 # −1
absolut 02.02.2011 14:47 # 0
Lure Of Chaos 02.02.2011 14:51 # 0
m1el 02.02.2011 14:58 # −3
Lure Of Chaos 02.02.2011 15:07 # +5
ваш кэп
guest 02.02.2011 15:38 # 0
Lure Of Chaos 02.02.2011 15:50 # 0
guest 02.02.2011 15:54 # 0
Кто-то сомневался? 5487 - говнокод, тк этого нет.
guest 02.02.2011 18:42 # −1
abatishchev 02.02.2011 21:46 # +1
abatishchev 02.02.2011 22:21 # 0
L_0011: call bool [mscorlib]System.String::IsNullOrEmpty(string)
L_0016: brtrue.s L_001f
L_0018: ldloc.0
L_0019: callvirt instance int32 ConsoleApplication1.Foo::get_ContentLeng th()
L_001e: pop
L_001f: ldloc.0
L_0020: brfalse.s L_0037
L_0022: ldloc.0
L_0023: callvirt instance string ConsoleApplication1.Foo::get_FileName()
L_0028: call bool [mscorlib]System.String::IsNullOrEmpty(string)
L_002d: brtrue.s L_0037
L_002f: ldloc.0
L_0030: callvirt instance int32 ConsoleApplication1.Foo::get_ContentLeng th()
L_0035: brtrue.s L_0008
guest 02.02.2011 23:39 # 0
Вообще, любой нормальный доделаный современный компилятор умеет делать оптимизацию expression elimination. Неужели майкрософт в сишарпе это не осилила? В С++ ихнем эта оптимизация работает.
TarasB 02.02.2011 23:51 # 0
guest 03.02.2011 01:51 # 0
А вообще, часть выражений с небольшой глубиной вложенности некоторые компиляторы вырезают даже без поддержки global optimization.
abatishchev 03.02.2011 10:14 # +1
здесь цикл,
потом оператор, статический метод, метод экземпляра, метод экземпляра
потом оператор, статический метод, метод экземпляра, метод экземпляра
не смотря на код - или представляя себе другой код, как можно удалить из этого что-либо?
давайте тогда сразу весь код на noop заменять и все дела :)
abatishchev 03.02.2011 10:12 # 0