GeneralElConsul, нет. В памяти в NET большинство переменных, даже маленьких, будут по 4 байта.
Но первые 3 для bool не используются, при копировании переменной они даже не копируются. А последний байт копируется. И он никуда не пропадёт.
Да, это уже вспомнил про типы в стеке вычислений. Isstrebitel:
GeneralElConsul, это ещё в C была такая логика - 0 - false, остальное - true. В C#, похоже, тоже, проверяет не конкретный бит, а, как в C, всё число.
GeneralElConsul, нет. В памяти в NET большинство переменных, даже маленьких, будут по 4 байта.
Но первые 3 для bool не используются, при копировании переменной они даже не копируются. А последний байт копируется. И он никуда не пропадёт.
Ничего нового, да и собственно зачем это? не понятно...
А вот сделать альтернативное хранилище булов, которые реально будут использовать 1 бид это уже что-то более важное
Это да. На Википедии видел сравнение C# и Java, у C# там есть элементы C++, которых у Java нету.
Я о том, что C# близок к Java по концепции виртуальной машины. А C++ чуть-чуть отдельно, но ближе к C#, чем к Java.
В C++ знал и использовал. Но это не C++, тут типизация строже. В раннем C вроде даже bool не было, читал где-то.
А в C# не то, что неявные - даже явные преобразования int и bool не всегда разрешены.
И вообще типизация строгая и не позволяет такого. По идее. С unsafe и не такое возможно.
Насчёт наследника - не очень то он наследник. Синтаксис похож, а так ближе к Java. Ну и применение и "внутреннее устройство" C++ и C# совершенно разные. Хотя есть C++ для платформы NET, что-то среднее =)
Так что да, на C++ это обычно, но на C# такое нечасто применяют.
Комментарии проекта Ангар Истребителя
C#: bool с сюрпризом
Код простой, но с unsafe.
Ред. AsagiriGen
Isstrebitel:
Ред. Isstrebitel
Но первые 3 для bool не используются, при копировании переменной они даже не копируются. А последний байт копируется. И он никуда не пропадёт.
Ред. AsagiriGen
А вот сделать альтернативное хранилище булов, которые реально будут использовать 1 бид это уже что-то более важное
Ред. Isstrebitel
Я о том, что C# близок к Java по концепции виртуальной машины. А C++ чуть-чуть отдельно, но ближе к C#, чем к Java.
Ред. Isstrebitel
И вообще типизация строгая и не позволяет такого. По идее. С unsafe и не такое возможно.