包含另一个类对象数组的类出错

时间:2015-01-27 20:09:56

标签: c# arrays nullreferenceexception

有人可以告诉我,我做错了什么?在c我可以定义一个结构来做到这一点在c#我一直在墙上撞了一整天,并不能弄清楚这个代码不起作用????我试图定义一个类/结构(SData)有两个字符串元素颜色和值。然后我定义了一个类/结构(DataPacket),它有一个13个SData对象的数组。我实例化一个DataPacket对象dp并尝试将字符串分配给dp.sd [0] .color,并抛出一个空引用异常。 VS locval变量中dp.sd[]的值为SData[13],每个元素都是ObjArrayProb.SData = null ????

局部变量查看器不显示sd []。color和sd []。value它只显示指向null的每个ObjArrayProb.SData []元素的单个指针??

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ObjArrayProb
{
    class SData
    {
        public string color;
        public string value;
    }

    class DataPacket
    {
        public string soh;
        public string sid;
        public SData[] sd;
        public string sm;
        public string eot;

        public DataPacket()
        {
            sd = new SData[13]; <---- this should instantiate 13 SData objects
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            DataPacket dp = new DataPacket();

            dp.sd[0].color = "1"; <--  this line throws a nullreferenceException and dp.sd[0] -> null and not a SData object???

            Console.WriteLine("sd[0].color = " + dp.sd[0].color);
        }
    }
}

0 个答案:

没有答案