none
结构体中数组定义如何写? RRS feed

  • 问题

  •     public struct TC4I_TEMP_OUT_STRUCT
        {
          
      double dTempB[1000];
      double dTempC[1000];
      double dTempD[1000];
        }

    上面这样错误,需要new?不知道怎么写

    2011年10月25日 7:05

答案

  • 报错:cannot have instance field initializers in structs


    对不起,没有看清是一个结构类型——结构类型不允许定义时候初始化。因此:

     public struct TC4I_TEMP_OUT_STRUCT
         {

            double[] dTempB;
            double[] dTempC;
            double[] dTempD;

            public TC4I_TEMP_OUT_STRUCT(int size)
            {
                dTempB = new double[size];
                dTempC = new double[size];
                dTempD = new double[size];
            }
         }
    TC4I_TEMP_OUT_STRUCT tt = new TC4I_TEMP_OUT_STRUCT(1000);

    如果你有其它意见或私下交流,请直接发送maledong_work@foxmail.com;或者讨论(Talk)
    If you do not have QQ, please open the page and download it and click the image to talk or leave message for me.
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    • 已标记为答案 Paul Zhou 2011年11月2日 5:03
    2011年10月25日 7:53
    版主

全部回复

  •     public struct TC4I_TEMP_OUT_STRUCT
        {
          
      double dTempB[1000];
      double dTempC[1000];
      double dTempD[1000];
        }

    上面这样错误,需要new?不知道怎么写


      public struct TC4I_TEMP_OUT_STRUCT
         {
            
      double[] dTempB=new double[1000];
    }
    然后下面两个完成类似写法,注意——C#数组不能直接初始化就赋予大小。

    如果你有其它意见或私下交流,请直接发送maledong_work@foxmail.com;或者讨论(Talk)
    If you do not have QQ, please open the page and download it and click the image to talk or leave message for me.
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    2011年10月25日 7:20
    版主
  • 报错:cannot have instance field initializers in structs
    2011年10月25日 7:43
  • 报错:cannot have instance field initializers in structs


    对不起,没有看清是一个结构类型——结构类型不允许定义时候初始化。因此:

     public struct TC4I_TEMP_OUT_STRUCT
         {

            double[] dTempB;
            double[] dTempC;
            double[] dTempD;

            public TC4I_TEMP_OUT_STRUCT(int size)
            {
                dTempB = new double[size];
                dTempC = new double[size];
                dTempD = new double[size];
            }
         }
    TC4I_TEMP_OUT_STRUCT tt = new TC4I_TEMP_OUT_STRUCT(1000);

    如果你有其它意见或私下交流,请直接发送maledong_work@foxmail.com;或者讨论(Talk)
    If you do not have QQ, please open the page and download it and click the image to talk or leave message for me.
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    • 已标记为答案 Paul Zhou 2011年11月2日 5:03
    2011年10月25日 7:53
    版主