Последние комментарии
Для меня эта страница - это удобный способ смотреть, что нового происходит в комментариях и сразу находить заметку, не заходя в админку. Думаю, она будет полезна и тебе.
RainBoy
Я не представляю варианта кроме явного бага в случае с .NET и данная конструкция будет работать.
Просто это стиль написания программ, и для меня он "грязный". Смысл делать потенциальное узкое место (пусть не .NET) мне непонятен. В запарке можно просто менять код и поменять местами операторы самому.
Михаил Фленов
Просто для интереса, как ты думаешь, зачем они захотят сменить логику? Я знаю, зачем они не будут менять:
1. производительность
2. обратная совместимость (представляешь, сколько им самим придется кода переворошить после такой шутки)
Не вижу ни одной причины менять и не только в С++. Есть языки (точно не помню, но читал где-то, что есть какой-то один, может несколько языков), где по стандарту по любасу проверяются все части. Но я считаю это глупостью.
RainBoy
Я не писал в общем случае про .NET
Просто "я уверен" - аргумент, конечно, хороший =)
Это больше сила привычки, Double checked так сказать =)
Михаил Фленов
Это не меняется уже годами и скорей всего не поменяется, потому что все так пишут. Взгляни на заметку: http://flenov.info/blog.php?catid=746. Там явно ясходник MS и обрати внимание на эту конструкцию:
if (m_CacheBinding != null &&
m_CacheBinding.Cache != null &&
m_CacheBinding.Validator != null &&
CacheProtocol == null &&
policy != null &&
policy.Level != RequestCacheLevel.BypassCache)
{
CacheProtocol = new RequestCacheProtocol(m_CacheBinding.Cache, m_CacheBinding.Validator.CreateValidator());
}
Я уверен что ничего не измениться еще и потому, что это производительность. Нафига тратить время на все проверки, если уже первая валится. Разве что распараллеливать эту задачу по ядрам, но не думаю, что на это пойдут, оно того не стоит.
RainBoy
Михаил, при всем уважении, но:
if ((s == null) || (s.Value == " Something ");
ИМХО, мусорный вариант. Как минимум, привязка к надежде на то, что в следующих версиях не поменяют логику работы, а в принципе - безолаберность программиста, который ввел потенциальный вылет ценой небольшого упрощения кода.
Михаил Фленов
А вот я не хочу заниматься дизайнов. Мне впадлу тратить на это время. Лет 5 назад я еще прикалывался украшать окна и заниматься всякой подобной фигней, но теперь задолбался. Сколько можно украшать ОС. Я хочу установить ее и просто работать в крассивой и удобной системе и не заниматься гуглением.
Антон
Syber Ты не решаешься только потому что боишься проблем и дизайн тут не причем, ты можешь его сделать таким каким хочешь в инете полно всего, гугл в помощь. Так же ты геймер и это тебя останавливает. Это самые важные проблемы твои.
Михаил Фленов
У нас на работе тоже так оформляют. Но когда я пишу дома, я использую VS, которая автоматом по умолчанию (в приципе, можно изменить) переносит скобку на отдельную строку. Когда скобка на той же строке, то код действительно компактнее, но тут вопрос не компактности, а читабельности кода. В данном случае, для меня оба варианта вполне читабельны.
BasicWolf
Михаил, а я наприме в С-подобных языках сделал для себя правилом отделать скобкой на отдельной строке namespace'ы, классы, методы, всё остальное (циклы, условия и т.д. - скобку ставить на той же строке. Код получается компактнее)
Михаил Фленов
Ясно, но я не вижу смысла защищаться от багов .NET. Возможно, тут имеет даже смысл поднять спецификацию и посмотреть, как компилятор должен вести себя. Если он обязан проверять в такой последовательности, то не вижу ничего грязного. Хотя я не вижу в любом случае :)