All streams
Search
Write a publication
Pull to refresh
14
0
Григорьев Антон @Vglk

User

Send message

Вещественные числа с плавающей двоичной точкой в .NET и .NET Framework

Level of difficultyMedium
Reading time42 min
Views15K

В статье разбираются ситуации, когда операции над вещественными числами с плавающей двоичной точкой (типы float и double в C#) дают результаты, отличные от ожидаемых интуитивно. Подробно разобраны причины этих отличий, приведены примеры, когда результат получается разный в .NET и .NET Framework или изменяется при переключении между конфигурациями Debug и Release, а также между x86 и x64. Даны общие сведения о стандарте IEEE 754 и особенностях этого стандарта, приводящих к названным эффектам. Объяснены принципиальные различия между .NET и .NET Framework в части операций с вещественными числами.

Читать далее

Фантазии на тему метаклассов в C#

Reading time6 min
Views7.6K
Программистам вроде меня, которые пришли в C# с большим опытом работы в Delphi, часто не хватает того, что в Delphi принято называть ссылками на класс (class reference), а в теоретических работах – метаклассами. Я несколько раз натыкался в разных форумах на обсуждение, проходящее по одной схеме. Начинается оно с вопроса кого-то из бывших дельфистов на тему того, как сделать метакласс в C#. Шарписты просто не понимают вопроса, пытаются уточнить, что это за зверь такой – метакласс, дельфисты как могут объясняют, но объяснения краткие и неполные, и в итоге шарписты остаются в полном недоумении, зачем всё это нужно. Ведь то же самое можно сделать с помощью рефлексии и фабрик класса.

В этой статье я попытаюсь всё-таки рассказать, что такое метаклассы, тем, кто с ними никогда не сталкивался. Дальше уже пусть каждый сам решает, хорошо ли было бы иметь такую вещь в языке, или рефлексии достаточно. Всё, что я тут пишу, это именно фантазии на тему того, как оно могло бы всё быть, если бы в C# действительно были метаклассы. Все примеры в статье написаны на этом гипотетическом варианте C#, ни один существующий на данный момент компилятор не сможет их откомпилировать.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity