我希望创建一个查找表,可以从其他类中引用。因此,我正在尝试创建一个以下形式的常量结构列表:
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),
.
.
.
};
}
我使用它如下所示:
if (DataRouting1.Parameter[Index].Fieldbus == false)
.
.
这段代码可以正确编译,但运行时程序崩溃并报告内存溢出。我逐步跟踪代码发现,在执行以上一行代码时,程序调用了该行。
public bool Fieldbus { get { return Fieldbus; } }
并且无限期地保留在那里。按下步进按钮会在“get”后面的“{”和“return Fieldbus”之间切换高亮显示,因此显然进入了一个无限循环。
有什么想法我做错了什么吗?