如何从VOID类型方法中获取价值?

时间:2011-06-14 03:40:55

标签: c# winforms composite

在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返回类型。 有人请解决我的问题。 提前谢谢。

2 个答案:

答案 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)
    {
    }
}