The Curious Engineer

All blogs / C# / .NET

Невероятные приключения в коде

learn.microsoft.com/en-us/archive/blogs/ruericlippert

Перевод блога Эрика Липперта

C# / .NETCompilersMicrosoft blogsMSDN archive

’10’15’20’25
Posts
256 from 9 Apr 2009 to 20 Feb 2013
Posting
archived, read-only
Kind
personal blog
Language
Russian
Feed
https://learn.microsoft.com/en-us/archive/blogs/ruericlippert/feed.xml

2013 4

  1. Динамическое заражение, часть вторая
  2. Динамическое заражение, часть первая
  3. Группа из одного метода
  4. C# – это строго типизированный или слабо типизированный язык?

2012 46

  1. Невычислимое
  2. Как убедиться, что вывод типов метода завершится?
  3. Доступен сентябрьский выпуск Roslyn CTP
  4. Статический анализ оператора «is»
  5. Загадка с оператором «is». Часть 2
  6. Загадка с оператором «is». Часть 1
  7. Не смешивайте out-параметры и LINQ
  8. Должен ли C# выдавать предупреждения на использование пустых ссылок
  9. Когда преобразование типов им не является?
  10. Лучший совет, который мне когда-либо давали
  11. Глупая последовательность глупа
  12. Эрик снова рассуждает о языке C#
  13. Поведение, определяемое реализацией
  14. Персистентность, фасады и красно-зеленые деревья в Roslyn
  15. Анонсируем Microsoft Roslyn June 2012 CTP
  16. Прошлая эффективность не гарантирует будущих результатов
  17. Руководство по GUID. Часть 3
  18. Руководство по GUID. Часть 2
  19. Руководство по GUID. Часть 1
  20. null – это не false. Часть 3
  21. Небольшое отступление
  22. null – это не false. Часть 2
  23. null – это не false
  24. Почему ограничения не выводятся автоматически?
  25. Почему локальные переменные в недостижимом коде полностью определены?
  26. Доступна бета-версия языка C# 5.0
  27. Решение простой задачи
  28. Простая задача
  29. Генерация случайных чисел с неравномерным распределением в C#
  30. Плохие метафоры
  31. Что такое «связывание» и что делает его поздним?
  32. В чем разница? Тренчкот vs пыльник
  33. Использование общих анонимных типов в одной сборке. Часть 2
  34. Использование общих анонимных типов в одной сборке. Часть 1
  35. Каково определяющее свойство локальной переменной?
  36. Любое изменение открытого интерфейса является критическим
  37. Такой мечтатель
  38. Построение теней на C#. Часть 6
  39. Построение теней на C#. Часть 5
  40. Построение теней на C#. Часть 4
  41. Построение теней на C#. Часть 3
  42. Построение теней на C#. Часть 2
  43. Построение теней на C#. Часть 1
  44. Люди, похожие на мошенников
  45. Так много интерфейсов, часть 2
  46. В чем разница между получением остатка от деления и взятия модуля?

2011 57

  1. Почему стек?
  2. Почему IL?
  3. Список для чтения по языку C#
  4. Критические изменения и именованные аргументы
  5. Доступна предварительная версия Roslyn
  6. Безумно великий
  7. Статьи по асинхронности
  8. Хранить в тайне, хранить в безопасности
  9. Наследование и внутреннее представление
  10. Что это за штука под названием «тип»? Часть 2
  11. Что это за штука под названием «тип»? Часть 1
  12. Самая смешная венгерская шутка
  13. Я рад и опечален, что все закончилось
  14. Строки, неизменяемость и персистентность
  15. О необычном свойстве строки
  16. Каким интересным свойством обладает эта строка?
  17. Мой приятель Нил полностью со мной согласен
  18. Следование шаблону
  19. Локальные ссылки и возврат ссылок
  20. Атомарность, изменчивость и неизменяемость – это разные вещи. Часть 3
  21. Атомарность, изменчивость и неизменяемость – это разные вещи. Часть 2
  22. Атомарность, изменчивость(*) и неизменяемость – это разные вещи. Часть 1
  23. Неизменяемость и потокобезопасность – это не одно и то же
  24. Сложности с необязательными параметрами. Часть 4
  25. Сложности с необязательными параметрами. Часть 3
  26. Сложности с необязательными параметрами. Часть 2
  27. Сложности с необязательными параметрами. Часть 1
  28. Возможно со Вселенной что-то не так, но, скорее всего, нет
  29. Плюсы и минусы неявной типизации
  30. Обновление Async CTP
  31. С днем рождения, Channel 9!
  32. Так много интерфейсов!
  33. Составные операторы присваивания. Часть 2
  34. Dot NET Rocks!
  35. Составные операторы присваивания. Часть 1
  36. Реализация шаблона «виртуальный метод». Часть 3
  37. Реализация шаблона «виртуальный метод». Часть 2
  38. Реализация шаблона «виртуальный метод». Часть 1
  39. Упаковывать или не упаковывать, вот в чем вопрос
  40. Ссылки и указатели. Часть 2
  41. Ссылки и указатели. Часть 1
  42. Опасность, Уил Робинсон!
  43. Правила и рекомендации по переопределению GetHashCode
  44. Никогда не говори никогда. Часть 2
  45. Никогда не говори никогда. Часть1
  46. Заглядываем в double
  47. Что бы сделал мистер Фейнман?
  48. Необязательные аргументы с обеих сторон
  49. Странно, но корректно
  50. Всё интереснее и интереснее
  51. Найди ошибку: плохие сравнения. Часть 4
  52. Найди ошибку: плохие сравнения. Часть 3
  53. Найди ошибку: плохие сравнения. Часть 2
  54. Найди ошибку: плохие сравнения. Часть 1
  55. Не так просто, как кажется. Часть 2
  56. Не так просто, как кажется
  57. Чудовищные взрывы

2010 84

  1. Почему анонимные типы являются обобщенными?
  2. Ищем людей в Рослин
  3. Все ваши базы не принадлежат вам[1]
  4. Большое начало, длинный хвост
  5. Игра битами: что означает предупреждение CS0675?
  6. Асинхронность в C# 5. Часть 7: исключения
  7. Асинхронность в C# 5. Часть 6: насколько асинхронно?
  8. Асинхронность в C# 5. Часть 5: слишком много задач
  9. Асинхронность в C# 5. Часть 4: это не магия
  10. Асинхронность в C# 5. Часть 3: Композиция
  11. Асинхронность в C# 5. Часть 2: Откуда await?
  12. Асинхронность в C# 5. Часть 1
  13. Возвращаясь к стилю передачи продолжений. Часть 5: CPS и асинхронность
  14. Возвращаясь к стилю передачи продолжений. Часть 4: выверни себя наизнанку
  15. Возвращаясь к стилю передачи продолжений. Часть 3: размышления о сопрограммах
  16. Возвращаясь к стилю передачи продолжений. Часть 2: пассы с логикой управления
  17. Возвращаясь к стилю передачи продолжения. Часть 1
  18. Эрик Липперт, из Microsoft?
  19. Разоблачение другого мифа о значимых типах
  20. Без перебора с возвратом. Часть 2
  21. Без перебора с возвратом. Часть 1
  22. Правда о значимых типах
  23. Неоднозначность необязательных скобок. Часть 3
  24. Неоднозначность необязательных скобок. Часть 2
  25. Неоднозначность необязательных скобок. Часть 1
  26. is это as или as это is?
  27. Освой самостоятельно C# за … сколько часов?
  28. Отображение дерева в старом стиле
  29. Раскраска графов. Часть 5
  30. Раскраска графов. Часть 4
  31. Раскраска графов с помощью простого поиска с возвратом. Часть 3
  32. Раскраска графов с помощью простого поиска с возвратом. Часть 2
  33. Раскраска графов с помощью простого поиска с возвратом. Часть 1
  34. Предупреждение
  35. Темная наука
  36. Вычисление декартового произведения с помощью LINQ
  37. Заметки о путешествиях
  38. Скрыть и найти
  39. Не повторяйтесь; константы уже являются статическими
  40. Живое выступление из Нового Орлеана
  41. Лучше поздно, чем никогда
  42. Бесконечный как звезды
  43. Операторы преобразования не подчиняются дистрибутивному закону
  44. Все существующие программы. Часть 9
  45. Все существующие программы. Часть 8
  46. Все существующие программы. Часть 7
  47. Все существующие программы. Часть 6
  48. Все существующие программы. Часть 5
  49. Все существующие программы. Часть 4
  50. Все существующие программы. Часть 3
  51. Все существующие программы. Часть 2
  52. Все существующие программы. Часть 1
  53. Все существующие деревья
  54. Все существующие двоичные деревья
  55. Это важно[1]!
  56. Игнорирование скобок
  57. Точность и погрешность DateTime
  58. Превращаем баг в фичу
  59. Некоторые новые возможности C# 4.0
  60. Базовый класс в середине иерархии
  61. Рыцари, жулики, Protected и Internal
  62. Носки, дни рождения и коллизии хэш-функций
  63. Не давайте классам и пространствам имен одинаковые имена. Часть 4
  64. Не давайте классам и пространствам имен одинаковые названия. Часть 3
  65. Не давайте классам и пространствам имен одинаковые названия. Часть 2
  66. Не давайте классам и пространствам имен одинаковые названия. Часть 1
  67. Перебор с повторным использованием
  68. Привлечение талантов
  69. Поаккуратнее с топором. Часть 2. А как насчет исключений?
  70. Поаккуратнее с топором. Часть 1: Нужно ли мне указывать таймаут?
  71. В чем разница между тернарным и третичным?
  72. Лимонный завиток
  73. Цепочки вызовов простых операторов присваивания не такие уж и простые
  74. Пишите код, который читается как спецификация
  75. Сколько проходов?
  76. Стиль отвечает семантике
  77. Вызовы конструкторов в произвольных местах
  78. Почему не выдаются предупреждения на неиспользуемые директивы using?
  79. В чем разница между деструктором и методом завершения?
  80. Аномалия инициализации
  81. Почему я не могу получить доступ к защищенному члену из производного класса? Часть 6
  82. Продолжение выполнения внешнего цикла
  83. Существует ли такое понятие, как чрезмерная точность?
  84. Двоюродный племянник

2009 65

  1. Это самое прекрасное время года
  2. Используйте правильные инструменты
  3. Ограничения не являются частью сигнатуры метода
  4. Преобразования запросов являются синтаксическими
  5. Четкие правила корректности вариантности
  6. В чем разница между ковариантностью и совместимостью по присваиванию?
  7. Раскрытие цели
  8. Всегда пишите спецификацию. Часть 2
  9. Всегда пишите спецификацию, часть 1
  10. Замыкания на переменных цикла. Часть 2
  11. О вреде замыканий на переменных цикла
  12. Простые имена не так уж просты. Часть 2.
  13. Простые имена не так уж просты
  14. Фитнесс без Фокусов
  15. Новые видеозаписи
  16. Что вы называете «потокобезопасным»?
  17. Безвременно как бесконечность
  18. Отсутствие доказательств – не доказательство отсутствия
  19. В чём разница между операторами «as» и «приведения»?
  20. Почему нет свойств расширения?
  21. Почему Char неявно конвертируется в ushort, но не наоборот?
  22. Интернирование строк и String.Empty
  23. Почему ковариантность массивов типов-значений несогласована?
  24. Почему в ref и out параметрах нет вариантности типов?
  25. К западу от здания
  26. В чём разница между частичным методом и частичным классом?
  27. Извините за CAPTCHA
  28. В чём разница между условной компиляцией и атрибутом Conditional?
  29. Какая разница, часть Пятая: подписи сертификатами и строгие имена
  30. Какая разница, часть Четвёртая: into и into
  31. Какая разница, часть Третья: fixed и fixed
  32. Блоки итераторов, часть Седьмая: Почему нет анонимных итераторов?
  33. Теория массового обслуживания в действии, плюс лягушки
  34. Четыре странности switch
  35. Приоритет-против-порядка возвращаются
  36. Не всё наследуется от object
  37. Какая разница, Часть вторая: область видимости, пространство деклараций, время жизни
  38. В чём разница, Часть первая: Обобщения – не шаблоны
  39. Блоки итераторов, Часть шестая: почему запрещён небезопасный код?
  40. Блоки итераторов, часть пятая: Активный или Пассивный
  41. Блоки итераторов, Часть четвёртая: Почему нет yield в блоках catch?
  42. Блоки итераторов, Часть третья: почему нет yield в блоке finally?
  43. Блоки итераторов, Часть вторая: Почему нет out- или ref- параметров?
  44. Блоки итераторов, Часть первая
  45. Color Color
  46. Правильный ответ – «нет»
  47. Void не вариантен
  48. Итераторы на Летних Играх
  49. Ммм, Карри
  50. Это и так скриптовый язык
  51. Почему в C# нет «верхнеуровневых» методов?
  52. Поднимайте вес ногами, а не спиной
  53. Облегчать жизнь
  54. Что делает параметр optimize?
  55. “Недостаточно Памяти” не относится к физической памяти
  56. Поразительные Приключения на русском
  57. Увы, Смит и Джонс
  58. Бажная психология
  59. Пятисот постов когда достигнешь ты
  60. Что бы делал Tufte?
  61. В Инфуфа веруем: диалог
  62. “foreach” или “ForEach”
  63. Null – не то же самое, что Empty
  64. Зарезервированные и контекстные ключевые слова
  65. Двойная диспетчеризация – двойное удовольствие