在c#winforms中开发代码时,我遇到了问题..
在复合模式中,代码就像
//接口
interface Usage
{
public abstract void getinfo();
public abstract void add(Usage u);
}
//叶
class status : Usage
{
public string strng;
public status()
{
this.strng = "Hello";
}
public override void getinfo()
{
}
public override void add(Usage u)
{
}
}
//复合类
class composite : Usage
{
string strng;
ArrayList node=new ArrayList();
public override void add(Usage u)
{
node.Add(u);
}
public override void getinfo()
{
foreach (Usage u in this.node)
{
u.getinfo();
}
}
}
但是我无法捕获 strng
(状态)类的字符串Leaf
? getinfo()方法的返回类型是VOID
。但由于接口方法的实现,我无法使其STRING
返回类型。
有人请解决我的问题。
提前谢谢。
答案 0 :(得分:3)
您需要更改界面。让'get'方法无效
是没有意义的答案 1 :(得分:2)
罗伯特建议为什么不将其改为:
interface Usage
{
string getinfo();
void add(Usage u);
}
和
class status : Usage
{
public string strng;
public status()
{
this.strng = "Hello";
}
public override string getinfo()
{
return strng;
}
public override void add(Usage u)
{
}
}