嘿伙计们,我有一个应用程序,它包含一个基类(MacroCommand),三个子类MacroCommand(Resize,Rotate,Color),另一个类不继承任何东西(Image),然后是另一个类(Macro)拥有一个MacroCommands列表
class Macro
{
List<MacroCommand> macroCommandList = new List<MacroCommand>();
}
基本上,当我在Form类中创建我的MacroCommand对象时,我需要将它们添加到MacroCommand列表中,但是,当我尝试执行此操作时,我不断收到错误:
macroCommandList.Add(colourObject);
macroCommandList.Add(rotateFlipObject);
macroCommandList.Add(resizeObject);
(这是在Form类中)
感谢所有人的帮助。
编辑:错误:
错误2当前上下文中不存在名称'colourObject'C:\ Users \ Ari \ Desktop \ Assignment 3 \ Assignment 3 \ Assignment 3 \ Form1.cs 134 42 Assignment 3 错误3当前上下文中不存在名称“macroCommandList”C:\ Users \ Ari \ Desktop \ Assignment 3 \ Assignment 3 \ Assignment 3 \ Form1.cs 135 21 Assignment 3
只是这些错误,但每个不同的行
答案 0 :(得分:1)
这应该有效:
class Macro {
private List<MacroCommand> macroCommandList = new List<MacroCommand>();
public void AddMacroCommand(MacroCommand mc)
{
macroCommandList.Add(mc);
}
}
答案 1 :(得分:0)
根据错误,您尝试添加的对象不存在。这些对象在哪里宣布?它们的范围是什么?默认情况下,该列表是私有的,因此您需要将这些对象作为参数提供给将其添加到列表中的方法。
答案 2 :(得分:0)
如果您有List<BaseClass>
,则只能添加可转换为BaseClass
的元素(即BaseClass
'和来自BaseClass
的类)。
如果要将元素添加到列表(例如,macroCommandList
),则需要确保列表可以访问调用代码。这意味着要么将其公开(不是一个好主意),要么将公共方法添加到其包含类(即Macro
)进行添加。
该方法是公共的,因此它可以被类外的调用者访问,并且还可以访问私有变量macroCommandList
。