|
|
Перевод блога Эрика Липперта
Browse by Tags
All Tags » Language Design (RSS)
-
Пользователь: Недавно я обнаружил в C# странное поведение относительно деления на ноль чисел с плавающей запятой. Оно не бросает исключение, как целочисленное деление, а возвращает «бесконечность». С чего бы это? Эрик: Как я частенько говорил, мне трудно Read More...
|
-
Меня часто спрашивают «парни, вы добавили методы расширения в C# 3, так почему бы не добавить ещё и свойства расширения?» Хороший вопрос. Давайте, сначала я чуть поговорю о C# 3.0. Явно главной новостью в C# 3 был LINQ. В некотором смысле, у нас было Read More...
|
-
Так же, как «fixed» и «into», «partial» используется в С# двумя похожими-но-разными способами. Задача частичного класса в том, чтобы позволить вам разбивать объявление класса на несколько частей, обычно расположенных в различных файлах. Мотиватором этой Read More...
|
-
Вчера получил письмо, которое начиналось так: У меня есть вопрос про буфера фиксированного размера в C #: unsafe struct FixedBuffer { public fixed int buffer[100]; } Поскольку я объявил buffer как fixed , его нельзя перемещать… И моё сердце ёкнуло. Это Read More...
|
-
Эта аннотация к комментарию к пятой части, по моему мнению, заслуживает повышения до самостоятельной статьи. Почему мы не разрешаем анонимные итераторы? Я был бы счастлив иметь анонимные блоки итераторов. Я хочу писать что-то вроде: IEnumerable<int> Read More...
|
-
Большинство людей понимают, что есть разница между «прямоугольными» и «рваными» двумерными массивами. int[,] rectangle = { {10, 20}, {30, 40}, {50, 60} }; int[][] ragged = { new[] {10}, new[] {20, 30}, new[] {40, 50, 60} }; Тут у нас есть двумерный массив Read More...
|
-
В C# оператор C# немножко странен. Сегодня мы кратко коснёмся четырёх вещей, которых вы, вероятно, не знаете об операторе switch. Случай 1: Вы, вероятно, знаете, что запрещено «проваливаться» из одной секции switch в другую: switch(attitude) { case Attitude.HighAndMighty: Read More...
|
-
Есть три хороших причины не разрешать блоки unsafe в блоках итераторов. Во-первых, это весьма маловероятный сценарий. Цель блоков итераторов – в облегчении написания итератора, который обходит некоторый абстрактный тип данных. Это, скорее всего, будет Read More...
|
-
Некоторое время назад я опубликовал комментарий по поводу Летних Игр по Скриптингу, где я отметил наличие изоморфизма между «пассивными» коллекциями, , и «активными» событиями . Обычно вы думаете про события, как про что-то, что «вызывает» вас, отдавая Read More...
|
-
Теперь, когда вы знаете, почему мы не разрешаем yield в finally, легко увидеть, почему мы также запрещаем yield в catch. Во-первых, у нас всё еще есть проблема – запрещено делать goto в середину обработчика региона, защищённого try. Единственный способ Read More...
|
-
Есть три сценария, в которых код блока итератора может исполняться в finally. Ни в одном из них возврат значения изнутри finally не является хорошей идеей, так что это полностью запрещено. Эти три сценария - (1) обычная очистка ресурсов, (2) очистка ресурсов Read More...
|
-
Долгое и подробное обсуждение того, как именно мы реализовали блоки итераторов отняло бы довольно много моего времени, и продублировало бы работу, уже хорошо выполненную другими. Я призываю вас начать с плавного введения - цикла статей Реймонда: часть Read More...
|
-
В дизайне языков программирования есть постоянное трение между решением общих проблем и решением частных проблем; поиск верной точки в спектре от-общего-к-частному может быть весьма нетривиальным. Дизайн блоков итераторов даёт* нам характерный пример. Read More...
|
-
Внезапный опрос: что делает следующий код при компиляции и исполнении? class C { public static void M(string x) { System.Console.WriteLine("static M(string)"); } public void M(object s) { System.Console.WriteLine("M(object)"); } } class Program { static Read More...
|
-
Моя недавняя статья про возможность рассмотрения того, что, быть может, когда-нибудь мы добавим «верхнеуровневые» методы в C# для облегчения «скриптовых» сценариев породила неожиданное количество немедленных выражений отвращения. Почитайте комментарии, Read More...
|
|
|
|