结构体里面有个 结构体数组成员 如何实例化

lccleo 2016-07-13 08:17:02

public struct FailureInfoSt
{
public SampleInfo[] sampleInfo; //200个元素
}

public struct SampleInfo
{
public bool[] input;
public bool[] output;
public Int16[] mtrCurrent;
public Int16[] mtrSpeed;
}


我需要将报文解析成 FailureInfoSt 然后发现光实例化 FailureInfoSt 没用
里面的 SampleInfo[] 还需要实例化,但是还没用 每个元素 SampleInfo还需要实例化 每个元素里面的数组需要实例化 简直疯了
求大神 就算不用结构体 用类 在构造函数里面 也得用个循环 去实例化 有没有杀其他好办法?
...全文
442 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2016-07-14
  • 打赏
  • 举报
回复
    public class SampleInfo
    {
        public bool[] input = new bool[2];
        public bool[] output = new bool[3];
        public Int16[] mtrCurrent = new Int16[4];
        public Int16[] mtrSpeed = new Int16[5];
    }
如果 SampleInfo 的成员是定长的,就可以这样写
lccleo 2016-07-14
  • 打赏
  • 举报
回复
引用 2 楼 xuzuning 的回复:
你改成 class 不是更好?
    public class FailureInfoSt
    {
     public SampleInfo[] sampleInfo = new SampleInfo[200] ;   //200个元素
    }
SampleInfo 也如法炮制 不过,若 SampleInfo 的成员都是不定长度的话,本来就需要边解析边实例化的
我已经用类了 虽然你实例化了 SampleInfo[]这个数组 但是里面每个元素还都是null 还得实例化 每个sampleInfo 【i】 我这有200个元素 得实例化200次 至少得用循环写 还有更好的方法吗?
  • 打赏
  • 举报
回复
不过反过来说,“实例化”不是什么问题,不值得怀疑。 假设你是干 GIS 系统开发的,让你自己写一个解析 shap 文件到内存中的“图形”的例子,你还是得动态产生上万、上十万个对象,而且对象里边还有对象。例如2点形成线、1万条线形成多边形、2个多边形形成岛、2000个图层形成一个图层,20个图层形成一个专题,等等等等,树形结构。 哪一个实际的系统要解析成对象,不实例化啊。
  • 打赏
  • 举报
回复
引用 3 楼 lccleo 的回复:
[quote=引用 2 楼 xuzuning 的回复:] 你改成 class 不是更好?
    public class FailureInfoSt
    {
     public SampleInfo[] sampleInfo = new SampleInfo[200] ;   //200个元素
    }
SampleInfo 也如法炮制 不过,若 SampleInfo 的成员都是不定长度的话,本来就需要边解析边实例化的
我已经用类了 虽然你实例化了 SampleInfo[]这个数组 但是里面每个元素还都是null 还得实例化 每个sampleInfo 【i】 我这有200个元素 得实例化200次 至少得用循环写 还有更好的方法吗?[/quote] 哪一个反序列化框架不实例化对象啊?谁让你非要自己写啊? 如果没有什么特别的癖好非要引入“豹纹”这么高大上的概念,那么就尽量使用直接了当的 xml、json 机制,.net 中现成的通用框架可以一句话搞定的事情。
xuzuning 2016-07-13
  • 打赏
  • 举报
回复
你改成 class 不是更好?
    public class FailureInfoSt
    {
     public SampleInfo[] sampleInfo = new SampleInfo[200] ;   //200个元素
    }
SampleInfo 也如法炮制 不过,若 SampleInfo 的成员都是不定长度的话,本来就需要边解析边实例化的
巴士上的邂逅 2016-07-13
  • 打赏
  • 举报
回复
用属性!!!
里面都是我新手时期学C的时候整理的一些TXT文档,因为分不够了,所以放上来赚点积分,都是很基础的东西,里面的代码都是经过我测试的,保证可用。 (1)输出Hello,world (2)标识符 (3)常量与变量 (4)整型数据 (5)实型数据 (6)复合赋值表达式 (7)自加自减运算符和逗号表达式 (8)顺序结构及数据输出 (9)数据输入 (10)作业练习一 (11)关系运算符和逻辑运算符 (12)选择结构及条件表达式 (13)循环结构,while语句 (14)循环结构,do while语句 (15)循环结构,for语句 (16)字符型数据 (17)字符型数据实例,作业练习二 (18)函数定义 (19)函数应用实例,作业练习三 (20)指针的定义 (21)函数之间地址值的传递 (22)函数返回地址值 (23)一维数组的定义 (24)一维数组应用实例 (25)一维数组应用实例(2) (26)一维数组应用实例(3) (27)二维数组的定义 (28)二维数组的初始化 (29)二维数组与指针 (30)二维数组应用实例 (31)二维数组应用实例(2) (32)用一维数组来存储字符串 (33)字符串的输入与输出 (34)字符串数组 (35)用于字符串处理的函数 (36)字符串应用实例 (37)传给Main函数的参数 (38)函数指针 (39)函数的递归调用 (40)变量作用域和存储类别 (41)编译预处理和不带参数的宏替换 (42)带参数的宏替换和文件包含 (43)动态存储分配 (44)结构体变量的定义与引用 (45)利用结构体变量构成静态链表 (46)利用结构体变量构成动态链表 (47)共用体的定义与应用 (48)位运算符 (49)File文件的数据输出操作 (50)File文件的数据输入操作 (51)判断文件结束函数 (52)fscanf和fprintf函数 (53)fgets和fputs函数 (54)fread和fwrite函数 (55)文件定位函数 c switch的用法 c 避免调试窗口闪退 c 弹出消息窗口 c 等待函数(sleep) c 定义类成员 c 动态分配内存法定义数组 c 返回二维数组 c 方向键键码 c 改变字体颜色 c 绘制图形 c 获得鼠标当前位置坐标 c 检测键盘按键 c 检测鼠标按下事件 c 将整数转换成二进制数并存放到数组中 c 结构体问题 c 使用winsock实现server和client(通讯程序) c 随机数发生器 c 图形模式详解 c 网页爬虫 c 写图形界面 c 遗传算法实例 c 在图形界面输出文字 c# List的用法 VS2010如何解决每次编译都要重新生成

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧