use*_*841 4 c# struct const list
我想创建一个可以从其他类引用的查找表,所以我试图创建一个const结构列表,如下所示:
public struct DataRouting1
{
public struct tParameters
{
private readonly bool prvFieldbus;
private readonly int prvAddressMax;
private readonly string prvTypeLabel;
private readonly byte prvXTPtype;
private readonly string prvPointLabel;
private readonly int prvPointMin;
private readonly int prvPointMax;
private readonly int prvPointValue;
private readonly int prvQuantityMax;
public tParameters(bool Fieldbus, int AddressMax, string TypeLabel, byte XTPtype, string PointLabel, int PointMin, int PointMax, int PointValue, int QuantityMax)
{
this.prvFieldbus = Fieldbus;
this.prvAddressMax = AddressMax;
this.prvTypeLabel = TypeLabel;
this.prvXTPtype = XTPtype;
this.prvPointLabel = PointLabel;
this.prvPointMin = PointMin;
this.prvPointMax = PointMax;
this.prvPointValue = PointValue;
this.prvQuantityMax = QuantityMax;
}
public bool Fieldbus { get { return Fieldbus; } }
public int AddressMax { get { return AddressMax; } }
public string TypeLabel { get { return TypeLabel; } }
public byte XTPtype { get { return XTPtype; } }
public string PointLabel { get { return PointLabel; } }
public int PointMin { get { return PointMin; } }
public int PointMax { get { return PointMax; } }
public int PointValue { get { return PointValue; } }
public int QuantityMax { get { return QuantityMax; } }
}
public static readonly List<tParameters> Parameter = new List<tParameters>
{
new tParameters (true, 250, "Fieldbus Digital Input", 0x80, "Number", 1, 65535, 0, 255),
new tParameters (true, 250, "Fieldbus Digital Output", 0x81, "Number", 1, 65535, 0, 255),
new tParameters (true, 250, "Fieldbus Input Register", 0x82, "Number", 1, 65535, 0, 255),
.
.
.
};
}
Run Code Online (Sandbox Code Playgroud)
我用它如下:
if (DataRouting1.Parameter[Index].Fieldbus == false)
.
.
Run Code Online (Sandbox Code Playgroud)
这个编译正确,但是当我运行它时程序崩溃,说它有内存溢出.我逐步完成了程序,发现当我走到上面时,应用程序调用了该行
public bool Fieldbus { get { return Fieldbus; } }
Run Code Online (Sandbox Code Playgroud)
并无限期地留在那里.在"获取"和"返回现场总线"之后突然显示"{"之间的步进切换,因此它显然进入无限循环.
我有什么想法我做错了吗?