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

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还需要实例化 每个元素里面的数组需要实例化 简直疯了
求大神 就算不用结构体 用类 在构造函数里面 也得用个循环 去实例化 有没有杀其他好办法?
...全文
451 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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
  • 打赏
  • 举报
回复
用属性!!!

111,097

社区成员

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

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

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