Невероятные приключения в коде
Перевод блога Эрика Липперта
В чем разница между ковариантностью и совместимостью по присваиванию?
Я об этом уже неоднократно писал, но думаю, что один момент требует повторения. По мере приближения...
Author: Anton Belousov - MSFT Date: 11/30/2009
Раскрытие цели
Весьма любопытно, что так никто и не догадался, зачем в компиляторе мне понадобился код для...
Author: Anton Belousov - MSFT Date: 11/25/2009
Всегда пишите спецификацию. Часть 2
Во время просмотра спецификации, даже не глядя на мой код, Крис нашел ошибку и упущение. Упущение...
Author: Anton Belousov - MSFT Date: 11/23/2009
Всегда пишите спецификацию, часть 1
У Джоэла Спольски несколько лет назад была отличная серия статей о преимуществах написания...
Author: Anton Belousov - MSFT Date: 11/19/2009
Замыкания на переменных цикла. Часть 2
Спасибо всем, кто оставил содержательные и глубокие комментарии для предыдущего сообщения[1]....
Author: Anton Belousov - MSFT Date: 11/16/2009
О вреде замыканий на переменных цикла
Я не знаю, почему я до сих пор не писал об этом в своем блоге, ведь это один из самых...
Author: Anton Belousov - MSFT Date: 11/12/2009
Простые имена не так уж просты. Часть 2.
А также о вулканах и еде Я вернулся из короткого отпуска – навещал друзей на острове Мауи. Я никогда...
Author: Anton Belousov - MSFT Date: 11/05/2009
Простые имена не так уж просты
В C# есть много правил, спроектированных для предотвращения некоторых обычных источников ошибок и...
Author: Gaidar Magdanurov Date: 11/01/2009
Фитнесс без Фокусов
Вот утверждение, которое я прочитал вчера про сравнения объектов ссылочного типа в C#:...
Author: Gaidar Magdanurov Date: 10/28/2009
Новые видеозаписи
Опять это как-то случилось; люди не перестают записывать меня на видео и выкладывать в интернет. В...
Author: Gaidar Magdanurov Date: 10/26/2009
Что вы называете «потокобезопасным»?
Предостережение: я не эксперт по многопоточному программированию. На самом деле, я бы даже не стал...
Author: Gaidar Magdanurov Date: 10/18/2009
Безвременно как бесконечность
Пользователь: Недавно я обнаружил в C# странное поведение относительно деления на ноль чисел с...
Author: Gaidar Magdanurov Date: 10/14/2009
Отсутствие доказательств – не доказательство отсутствия
Отсутствие доказательств – не доказательство отсутствия Сегодня – ещё два слегка неверных мифа о C#....
Author: Gaidar Magdanurov Date: 10/11/2009
В чём разница между операторами «as» и «приведения»?
Большинство людей скажут, чт о разница между «(Alpha)bravo» и «bravo as Alpha» в том, что первое...
Author: Gaidar Magdanurov Date: 10/07/2009
Почему нет свойств расширения?
Меня часто спрашивают «парни, вы добавили методы расширения в C# 3, так почему бы не добавить ещё и...
Author: Gaidar Magdanurov Date: 10/04/2009
Почему Char неявно конвертируется в ushort, но не наоборот?
Ещё один хороший вопрос со StackOverflow. Почему есть неявное преобразование из char в ushort, но...
Author: Gaidar Magdanurov Date: 09/30/2009
Интернирование строк и String.Empty
Вот любопытный фрагмент кода: object obj = "Int32";string str1 = "Int32";string str2 =...
Author: Gaidar Magdanurov Date: 09/27/2009
Почему ковариантность массивов типов-значений несогласована?
Еще один интересный вопрос со StackOverflow: uint[] foo = new uint[10];object bar =...
Author: Gaidar Magdanurov Date: 09/23/2009
Почему в ref и out параметрах нет вариантности типов?
Вот хороший вопрос со StackOverflow: Если у вас есть метод, принимающий «X», то вы должны передавать...
Author: Gaidar Magdanurov Date: 09/20/2009
К западу от здания
К западу от зданияВы стоите в открытом поле к западу от белого здания с дощатой входной дверью.Тут...
Author: Gaidar Magdanurov Date: 09/16/2009
В чём разница между частичным методом и частичным классом?
Так же, как «fixed» и «into», «partial» используется в С# двумя похожими-но-разными способами....
Author: Gaidar Magdanurov Date: 09/14/2009
Извините за CAPTCHA
Быстрая заметка по метаблоггингу. Те из вас, кто комментирует этот блог (6700+ комментариев и...
Author: Gaidar Magdanurov Date: 09/09/2009
В чём разница между условной компиляцией и атрибутом Conditional?
Пользователь: почему эта программа отказывается компилироваться в релизном билде? class Program {...
Author: Gaidar Magdanurov Date: 09/09/2009
Какая разница, часть Пятая: подписи сертификатами и строгие имена
И строгое именование и цифровые подписи используют криптографию публичных ключей для обеспечения...
Author: Gaidar Magdanurov Date: 09/02/2009
Какая разница, часть Четвёртая: into и into
Ключевое слово «into» в выражениях-запросах означает две разных вещи, в зависимости от того, идёт ли...
Author: Gaidar Magdanurov Date: 08/30/2009
Какая разница, часть Третья: fixed и fixed
Вчера получил письмо, которое начиналось так: У меня есть вопрос про буфера фиксированного размера в...
Author: Gaidar Magdanurov Date: 08/26/2009
Блоки итераторов, часть Седьмая: Почему нет анонимных итераторов?
Эта аннотация к комментарию к пятой части, по моему мнению, заслуживает повышения до самостоятельной...
Author: Gaidar Magdanurov Date: 08/23/2009
Теория массового обслуживания в действии, плюс лягушки
Ну, это был прекрасный отпуск. Начался он плохо, но затем значительно улучшился. Предположим, у вас...
Author: Gaidar Magdanurov Date: 08/19/2009
Четыре странности switch
В C# оператор C# немножко странен. Сегодня мы кратко коснёмся четырёх вещей, которых вы, вероятно,...
Author: Gaidar Magdanurov Date: 08/12/2009
Приоритет-против-порядка возвращаются
Еще раз я обращаюсь к мифу о том, что порядок вычисления в С# имеет какое-то отношение к приоритетам...
Author: Gaidar Magdanurov Date: 08/09/2009
Не всё наследуется от object
Я слышу много мифов о C#. Обычно в мифах есть крупица истины, например «типы-значения всегда...
Author: Gaidar Magdanurov Date: 08/05/2009
Какая разница, Часть вторая: область видимости, пространство деклараций, время жизни
Термин «scope» (область видимости) оказался одним из самых запутывающих слов во всём дизайне языков...
Author: Gaidar Magdanurov Date: 08/02/2009
В чём разница, Часть первая: Обобщения – не шаблоны
Поскольку я – гик, мне нравится узнавать о порой тонких различиях между вещами, которые легко...
Author: Gaidar Magdanurov Date: 07/29/2009
Блоки итераторов, Часть шестая: почему запрещён небезопасный код?
Есть три хороших причины не разрешать блоки unsafe в блоках итераторов. Во-первых, это весьма...
Author: Gaidar Magdanurov Date: 07/26/2009
Блоки итераторов, часть пятая: Активный или Пассивный
Некоторое время назад я опубликовал комментарий по поводу Летних Игр по Скриптингу, где я отметил...
Author: Gaidar Magdanurov Date: 07/22/2009
Блоки итераторов, Часть четвёртая: Почему нет yield в блоках catch?
Теперь, когда вы знаете, почему мы не разрешаем yield в finally, легко увидеть, почему мы также...
Author: Gaidar Magdanurov Date: 07/19/2009
Блоки итераторов, Часть третья: почему нет yield в блоке finally?
Есть три сценария, в которых код блока итератора может исполняться в finally. Ни в одном из них...
Author: Gaidar Magdanurov Date: 07/15/2009
Блоки итераторов, Часть вторая: Почему нет out- или ref- параметров?
Долгое и подробное обсуждение того, как именно мы реализовали блоки итераторов отняло бы довольно...
Author: Gaidar Magdanurov Date: 07/12/2009
Блоки итераторов, Часть первая
В дизайне языков программирования есть постоянное трение между решением общих проблем и решением...
Author: Gaidar Magdanurov Date: 07/08/2009
Color Color
Внезапный опрос: что делает следующий код при компиляции и исполнении? class C{ public static void...
Author: Gaidar Magdanurov Date: 07/05/2009
Правильный ответ – «нет»
Сегодня никакой технологии. Я не писал советов про отношения целую вечность! Сравните и...
Author: Gaidar Magdanurov Date: 07/01/2009
Void не вариантен
[ДОПОЛНЕНИЯ ниже] Некоторое время назад я описал вид вариантности, который мы поддерживаем, начиная...
Author: Gaidar Magdanurov Date: 06/28/2009
Итераторы на Летних Играх
Ed "Scripting Guy" Wilson был столь любезен, что попросил меня быть приглашенным комментатором на...
Author: Gaidar Magdanurov Date: 06/25/2009
Ммм, Карри
В недавнем комментарии меня спросили, почему программисты на Haskell иногда пишут лямбды C# в таком...
Author: Gaidar Magdanurov Date: 06/24/2009
Это и так скриптовый язык
Моя недавняя статья про возможность рассмотрения того, что, быть может, когда-нибудь мы добавим...
Author: Gaidar Magdanurov Date: 06/24/2009
Почему в C# нет «верхнеуровневых» методов?
C# требует, чтобы каждый метод был в каком-то классе, даже если это статический метод статического...
Author: Gaidar Magdanurov Date: 06/22/2009
Поднимайте вес ногами, а не спиной
В C# можно «lift» (накрывать), «raise» (возбуждать) и «hoist» (вытягивать), и всё это означает...
Author: Gaidar Magdanurov Date: 06/17/2009
Облегчать жизнь
Некоторое время назад я прочитал на MSNBC технологическую колонку, смысл которой сводился к «теперь...
Author: Gaidar Magdanurov Date: 06/15/2009