Хотя у других определенно есть смысл - это, вероятно, то, что вам действительно не нужно делать - там есть способ симуляции союзов в C # с использованием StructLayoutAttribute (пример симуляции объединения здесь ).
Но не делай этого. Похоже, что цель этого объединения C состоит в том, чтобы разрешить разделение битов по 4 байта длиной. Использование объединения таким образом зависит от знания порядка следования байтов целевой архитектуры, чего C # не может гарантировать.
В C # - или на любом другом языке, где важна переносимость - если вы хотите получить или установить старший байт / младший байт / и т.д., вам нужно использовать явное смещение битов, как объяснено здесь .
Но тогда тоже не делай этого. Делайте как другие, и не переносите этот код. Кто-то уже сделал это для вас, скорее всего, Microsoft во встроенных библиотеках;).