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

本文关键字:获取 方法 类型 VOID | 更新日期: 2023-09-27 17:59:00

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

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

您需要更改接口。让"get"方法无效是没有意义的

正如Robert所建议的,为什么不将其更改为:

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