В статье разбираются ситуации, когда операции над вещественными числами с плавающей двоичной точкой (типы float и double в C#) дают результаты, отличные от ожидаемых интуитивно. Подробно разобраны причины этих отличий, приведены примеры, когда результат получается разный в .NET и .NET Framework или изменяется при переключении между конфигурациями Debug и Release, а также между x86 и x64. Даны общие сведения о стандарте IEEE 754 и особенностях этого стандарта, приводящих к названным эффектам. Объяснены принципиальные различия между .NET и .NET Framework в части операций с вещественными числами.
Григорьев Антон @Vglk
Пользователь
Фантазии на тему метаклассов в C#
6 мин
7.6KПрограммистам вроде меня, которые пришли в C# с большим опытом работы в Delphi, часто не хватает того, что в Delphi принято называть ссылками на класс (class reference), а в теоретических работах – метаклассами. Я несколько раз натыкался в разных форумах на обсуждение, проходящее по одной схеме. Начинается оно с вопроса кого-то из бывших дельфистов на тему того, как сделать метакласс в C#. Шарписты просто не понимают вопроса, пытаются уточнить, что это за зверь такой – метакласс, дельфисты как могут объясняют, но объяснения краткие и неполные, и в итоге шарписты остаются в полном недоумении, зачем всё это нужно. Ведь то же самое можно сделать с помощью рефлексии и фабрик класса.
В этой статье я попытаюсь всё-таки рассказать, что такое метаклассы, тем, кто с ними никогда не сталкивался. Дальше уже пусть каждый сам решает, хорошо ли было бы иметь такую вещь в языке, или рефлексии достаточно. Всё, что я тут пишу, это именно фантазии на тему того, как оно могло бы всё быть, если бы в C# действительно были метаклассы. Все примеры в статье написаны на этом гипотетическом варианте C#, ни один существующий на данный момент компилятор не сможет их откомпилировать.
В этой статье я попытаюсь всё-таки рассказать, что такое метаклассы, тем, кто с ними никогда не сталкивался. Дальше уже пусть каждый сам решает, хорошо ли было бы иметь такую вещь в языке, или рефлексии достаточно. Всё, что я тут пишу, это именно фантазии на тему того, как оно могло бы всё быть, если бы в C# действительно были метаклассы. Все примеры в статье написаны на этом гипотетическом варианте C#, ни один существующий на данный момент компилятор не сможет их откомпилировать.
+13
Информация
- В рейтинге
- Не участвует
- Зарегистрирован
- Активность