在结构中不是不能使用结构,应该是fixed的问题吧

解决方案 »

  1.   

    不使用fixed 可以吗?
      

  2.   

    public fixed  Event[128] OriginEventData;
      

  3.   

    这不应该是结构的问题了是fixed不能用于结构形 的数据
      

  4.   

    http://msdn.microsoft.com/zh-cn/library/zycewsya.aspx
    C# 编程指南
    固定大小的缓冲区(C# 编程指南)在 C# 中,可以使用 fixed 语句在数据结构中创建带有固定大小数组的缓冲区。使用现有代码(如使用其他语言、预先存在的 DLL 或 COM 项目编写的代码)时,这种方法非常有用。固定数组可采用允许普通结构成员使用的任何属性或修饰符。唯一的限制是,数组类型必须是 bool、byte、 char、 short、int、long、sbyte、ushort、uint、ulong、float 或 double
      

  5.   

    unsafe struct EventFrame
            {
                public FrameHeader EventFrameHeader;
                public dianqi.headerClass1.Event[] OriginEventData;
            }dianqi.headerClass1.Event[] OriginEventData = new headerClass1.Event[128];
    这样定义行不?
      

  6.   

    ------------非托管---------------------- 
     unsafe struct EventFrame
            {
                [MarshalAs(UnmanagedType.ByValArray, SizeConst =128*52)] 
                public  Event[] OriginEventData;
            } ---------------托管-----------------------        unsafe class EventFrame
            {
                public EventFrame()
                {
                    OriginEventData = new Event[128];
                }
               Event[] OriginEventData;
            } 
      

  7.   

    TTOJJ:
    [MarshalAs(UnmanagedType.ByValArray, SizeConst =128*52)] 
    能详细的解释这句话的作用吗?