有人可以告诉我,我做错了什么?在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);
}
}
}