日期:2014-05-17  浏览次数:20726 次

关于仿C ++ union的写法
本帖最后由 qqmts 于 2012-12-07 14:39:30 编辑 小弟原本是学习C ++的

而最近开始接触C#

所以遇到一些C ++有的,但是C#不知道如何实现的功能。

如union就是一个例子

在C ++中,我有用到类似像这样的功能
//=================================================
struct 16Bits_Struct
{
  union
  {
    __int16             Data_16;

    struct
    {
      __int16          Data_16_B00:1,
                       Data_16_B01:1,
                       Data_16_B02:1,
                       Data_16_B03:1,
                       Data_16_B04:1,
                       Data_16_B05:1,
                       Data_16_B06:1,
                       Data_16_B07:1,
                       Data_16_B08:1,
                       Data_16_B09:1,
                       Data_16_B10:1,
                       Data_16_B11:1,
                       Data_16_B12:1,
                       Data_16_B13:1,
                       Data_16_B14:1,
                       Data_16_B15:1;
    };
  };
};
//=================================================


不知道如何在C#底下实现,希望有人可以指导一下阿
------最佳解决方案--------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;

namespace ConsoleApplication1
{
    [StructLayout(LayoutKind.Explicit)]
    struct MyUnion
    {
        [FieldOffset(0)]
        public short Data_16;
        public bool Data_16_B00
      &n