第一堂课叫EvenBetterValueList
(公开):
ValueList _valueList;
public override void AppendAdditionalMenuItems(ToolStripDropDown menu){
// Stuff
}
private void Menu_MyCustomItemClicked(object sender, EventArgs e){
// Stuff
}
protected override void SolveInstance(IGH_DataAccess DA){
// firstList and secondList list<string> declaration
ValueList _valueList = new ValueList(firstList, secondList);
}
第二个类被称为ValueList
(正如你在我的SolveInstance方法中所说的那样。这也是公开的):
骨架是:
private List<string> _firstList = new List<string>();
private List<string> _secondList = new List<string>();
// .. getter setters
public ValueList(List<string> firstList, List<string> secondList) {
_firstList.Clear();
_secondList.Clear();
// Add vars to global vars
_firstList.AddRange(firstList);
_secondList.AddRange(secondList);
}
有了这个,我计划在类中添加一个私有变量来扩展我的类范围,但是这发生了:
似乎永远不会将_valueList
分配给。
这可能会再次成为范围问题吗?
答案 0 :(得分:0)
而不是:
ValueList _valueList;
尝试:
ValueList _valueList = new ValueList();
如果不调用默认构造函数,则不会分配任何内容。
通过预先分配所有属性,有一个自动默认构造函数。如果您不预先指定它们,则构建一个默认构造函数,将默认值分配给未预先分配的属性。
答案 1 :(得分:0)
您的SolveInstance
函数正在创建自己的ValueList
实例,其实际名称与您的成员变量_valueList
相同。
不要在该功能中重新声明它。
protected override void SolveInstance(IGH_DataAccess DA)
{
// firstList and secondList list<string> declaration
_valueList = new ValueList(firstList, secondList);
}