Freigeben über


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

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

Динамическое заражение, часть вторая

В прошлый раз мы обсуждали, как параметр «dynamic» стремится расшириться по программе подобно...

Date: 02/20/2013

Динамическое заражение, часть первая

  Предположим, что вы эпидемиолог, моделирующий возможное распространение сильно заразной...

Date: 01/22/2013

Группа из одного метода

На этой неделе я реализовывал семантический анализ динамических выражений в проекте Roslyn, так что...

Date: 01/21/2013

C# – это строго типизированный или слабо типизированный язык?

Сегодняшний пост, как обычно будет представлен в виде диалога. C# – это строго типизированный или...

Date: 01/15/2013

Невычислимое

Мы можем рассматривать компьютерную программу, как устройство, которое берет на вход набор целых...

Date: 12/19/2012

Как убедиться, что вывод типов метода завершится?

Я все пропустил! Я подготовился к огромной волне анонсов по поводу выхода языка TypeScript, но...

Date: 12/03/2012

Доступен сентябрьский выпуск Roslyn CTP

Я рад сообщить, что выпустили третий ознакомительный выпуск («Community Technology Preview») проекта...

Date: 11/20/2012

Статический анализ оператора «is»

  Прежде чем переходить к сегодняшнему невероятному приключению, я хотел бы поздравить всё...

Date: 11/09/2012

Загадка с оператором «is». Часть 2

Как я и говорил в прошлый раз, это загадка была довольно простой: мы получим такое поведение, если...

Date: 11/07/2012

Загадка с оператором «is». Часть 1

  Возможно, что в программе с некоторой локальной переменной x: bool b = x is FooBar; во время...

Date: 11/06/2012

Не смешивайте out-параметры и LINQ

Я вернулся из ежегодного отпуска, проведенного в прекрасном месте на юго-западе Онтарио; прежде чем...

Date: 11/06/2012

Должен ли C# выдавать предупреждения на использование пустых ссылок

Как вы наверное знаете, компилятор языка C# анализирует константы для поиска недостижимого кода. В...

Date: 10/12/2012

Когда преобразование типов им не является?

Мне очень часто задают вопрос о логике преобразования типов в языке C#, что, в общем-то, не...

Date: 09/03/2012

Лучший совет, который мне когда-либо давали

Сейчас всего лишь небольшая ссылка: Прекраснейшие люди из InformIT (*) выпускают серию коротких...

Date: 08/28/2012

Глупая последовательность глупа

Сегодняшний пост как обычно будет представлен в виде диалога. Почему в некоторых случаях...

Date: 08/28/2012

Эрик снова рассуждает о языке C#

Рейчел Румелиотис (Rachel Roumeliotis), которая, помимо прочего является редактором книг о C# в...

Date: 08/27/2012

Поведение, определяемое реализацией

Как я уже неоднократно упоминал в этом блоге ранее, язык C# был тщательно спроектирован таким...

Date: 08/27/2012

Персистентность, фасады и красно-зеленые деревья в Roslyn

На ранних стадиях дизайна проекта Roslyn мы решили, что основной структурой данной, с которой будут...

Date: 08/26/2012

Анонсируем Microsoft Roslyn June 2012 CTP

Внимание всем, я рад сообщить, что мы выпускаем вторую предварительную версию проекта Roslyn,...

Date: 08/24/2012

Прошлая эффективность не гарантирует будущих результатов

Прежде чем перейти к сути нашего сегодняшнего повествования, несколько замечаний. Во-первых, я...

Date: 08/24/2012

Руководство по GUID. Часть 3

Давайте напомним, о чем шла речь: GUID – это 128-разрядное целое, который используется в качестве...

Date: 08/06/2012

Руководство по GUID. Часть 2

Так каким же образом, GUID гарантированно является уникальным без централизованного контролирующего...

Date: 07/31/2012

Руководство по GUID. Часть 1

Что такое GUID? Данный акроним расшифровывается как «globally unique identifier» (глобально...

Date: 07/31/2012

null – это не false. Часть 3

Возвращаемся к теме нашего обсуждения: мы бы хотели позволить пользователям «перегружать» операторы...

Date: 06/09/2012

Небольшое отступление

Прежде чем мы продолжим наши изыскания, небольшое отступление. В прошлый раз я упомянул о...

Date: 06/08/2012

null – это не false. Часть 2

В замечательной книге Реймонда Смаллиана про остров рыцарей и лжецов, на котором, как вы помните,...

Date: 06/05/2012

null – это не false

В языке C# «null» используется для указания «отсутствия» значения или «некорректного» значения....

Date: 03/30/2012

Почему ограничения не выводятся автоматически?

Предположим, у вас есть базовый обобщенный тип с ограничением: class Bravo<T> where T :...

Date: 03/13/2012

Почему локальные переменные в недостижимом коде полностью определены?

Вы, скорее всего, знакомы с возможностью языка C#, которая запрещает чтение локальной переменной до...

Date: 03/12/2012

Доступна бета-версия языка C# 5.0

Я невероятно рад сообщить, что бета-версия Visual Studio версии 11 (которая включает .NET CLR версии...

Date: 03/12/2012

Решение простой задачи

  При первом запуске моего визуализатора гистограмм я попробовал построить распределение Коши с...

Date: 03/12/2012

Простая задача

Моя исходная версия функции получения гистограмм, приведенная в предыдущей заметке, содержала...

Date: 03/11/2012

Генерация случайных чисел с неравномерным распределением в C#

При создании симуляторов событий реального мира, или при генерации тестовых выборок для алгоритмов,...

Date: 03/11/2012

Плохие метафоры

Стандартным способом обучения молодых программистов объектно-ориентированному программированию...

Date: 03/06/2012

Что такое «связывание» и что делает его поздним?

«Позднее связывание» – это один из таких же терминов компьютерных наук, что «строгая типизация»,...

Date: 03/04/2012

В чем разница? Тренчкот vs пыльник

Сегодня будет еще один эпизод из моей постоянной рубрики «В чем разница?». На этот раз...

Date: 03/04/2012

Использование общих анонимных типов в одной сборке. Часть 2

В прошлый раз я писал о том, что использование в одной сборке в разных местах «одинакового»...

Date: 03/03/2012

Использование общих анонимных типов в одной сборке. Часть 1

В одной из моих заметок 2010-го года я сказал, что приведу в следующем году пример использования в...

Date: 03/02/2012

Каково определяющее свойство локальной переменной?

Если вы спросите у десяти C#-программистов о том, что такое «локальная переменная», то вы получите...

Date: 03/02/2012

Любое изменение открытого интерфейса является критическим

Неприятная правда заключается в том, что любое изменение открытого интерфейса потенциально является...

Date: 03/01/2012

Такой мечтатель

Я заметил, что у этого блога и у фотоблога программиста Раяна Гослина (Ryan Goslin) есть как минимум...

Date: 03/01/2012

Построение теней на C#. Часть 6

Прекрасно, давайте, наконец, завершим эту серию. У нас есть алгоритм, который вычисляет, какие...

Date: 03/01/2012

Построение теней на C#. Часть 5

Итак, мы нашли верхнюю и нижнюю ячейки в заданном фрагменте столбца, ограниченном верхним и нижнем...

Date: 02/28/2012

Построение теней на C#. Часть 4

В прошлый раз мы увидели, сколькими разными способами можно неверно вычислить верхнюю ячейку,...

Date: 02/26/2012

Построение теней на C#. Часть 3

Прежде чем мы начнем, хочу поблагодарить всех за замечательные коментарии к предыдущим двум постам....

Date: 02/26/2012

Построение теней на C#. Часть 2

Я надеюсь, что основная идея алгоритма построения теней теперь ясна. Давайте приступим к его...

Date: 02/16/2012

Построение теней на C#. Часть 1

Мне всегда нравились игры вроде «rogue» («бродяга»); возможно вы тоже играли в некоторые из них. В...

Date: 02/06/2012

Люди, похожие на мошенников

Сегодня не будет технологий. Вместо этого несколько советов. Я не знаю, есть ли какие-то связи между...

Date: 02/01/2012

Так много интерфейсов, часть 2

В статье за апрель 2011 года о реализации интерфейсов я упомянул о том, что язык C# поддерживает...

Date: 01/09/2012

В чем разница между получением остатка от деления и взятия модуля?

Сегодня мы продолжим мою постоянную рубрику «В чем разница?» и рассмотрим разницу между получением...

Date: 01/04/2012

Next>