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

Сегодняшний пост, как обычно будет представлен в виде диалога. C# – это строго типизированный или слабо типизированный язык программирования? Да. Ответ не очень-то полезный. Я серьезно. Любопытно, что если вы перефразируете свой вопрос так, чтобы в нем было «И», то ответ будет таким же. Что? Вы имеете в виду, что C# является и строго типизированным…

3

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

Сегодняшний пост как обычно будет представлен в виде диалога. Почему в некоторых случаях использование ключевого слова var является обязательным для неявно типизированной локальной переменной, а иногда его использование запрещено? Это хороший вопрос, но нельзя ли немного конкретики? Для начала стоит перечислить случаи, когда неявно типизированная локальная переменная должна, а иногда не должна использовать var. Конечно….

2

Что бы сделал мистер Фейнман?

Никто из моих знакомых в компании Microsoft больше не задает эти ужасные задачки «на нестандартную логику». Хотя, может быть, кто-то еще их задает, я не знаю. Но ходят слухи, что многие другие компании все еще следуют тому, как компания Microsoft проводила собеседования в 90-х. Продолжая эту старую традицию, я хочу представить продолжение истории Кейта Митчела…

22

Неоднозначность необязательных скобок. Часть 1

Еще один интересный вопрос со StackOverflow, который я представлю здесь, как обычно, в виде диалога: В C# 3.0 существует два формата синтаксиса инициализатора объектов (object initializer) (и инициализатора коллекций (collection initialize)): new Foo { Bar = 123 } и new Foo() {Bar = 123 }. Если используется конструктор по умолчанию, список аргументов не является обязательным….

0

Не повторяйтесь; константы уже являются статическими

На сайте StackOverflow прозвучал еще один интересный вопрос. Представляю его в виде диалога: В спецификации сказано «хотя константы являются статическими членами, при объявлении модификатор static не требуется и является недопустимым». Почему не принято решение обязать использование модификатора static для констант, раз они и так являются статическими? Давайте согласимся с тем, что вполне разумно, что константы…

1

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

Сегодня будет еще один диалог и еще один эпизод из моей постоянной рубрики «в чем разница?». В чем разница, если она вообще существует, между «деструктором» (destructor) и «методом завершения» (finalizer)? Оба понятия являются механизмом очистки ресурсов после того, как в них пропадает необходимость. Когда меня спросили об этом, я сначала подумал, что между этими понятиями…


Простые имена не так уж просты. Часть 2.

А также о вулканах и еде Я вернулся из короткого отпуска – навещал друзей на острове Мауи. Я никогда раньше не был в этой части света. Как выяснилось, это небольшой островок посреди Тихого океана, который просто напичкан вулканами (который состоит из одних вулканов). Жутко! Но потрясающе! Самое большое впечатление Гавайские острова произвели на меня, совершенно…


Безвременно как бесконечность

Пользователь: Недавно я обнаружил в C# странное поведение относительно деления на ноль чисел с плавающей запятой. Оно не бросает исключение, как целочисленное деление, а возвращает «бесконечность». С чего бы это? Эрик: Как я частенько говорил, мне трудно отвечать на вопросы «почему». Обычно моя первая попытка ответить на вопрос «почему» – «потому, что так гласит спецификация»;…


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

Пользователь: почему эта программа отказывается компилироваться в релизном билде? class Program { #if DEBUG     static int testCounter = 0; #endif     static void Main(string[] args)     {         SomeTestMethod(testCounter++);     }     [Conditional(“DEBUG”)]     static void SomeTestMethod(int t) { } } Эрик: Это не получается скомпилировать при окончательном построении потому, что не удаётся найти…


Правильный ответ – «нет»

Сегодня никакой технологии. Я не писал советов про отношения целую вечность! Сравните и противопоставьте эти два разговора: ****** Версия Один: Алиса: Спасибо, что согласился со мной пообедать. Я думаю, ты знаешь, о чём я хочу поговорить. Эрик: Ага, знаю. Я думаю, ты не должна принимать поспешных решений, основываясь только на слухах. Есть множество совершенно невинных…