繁体   English   中英

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

[英]How to get value from VOID type method?

在开发 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

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();
            }

        }   
    }

但是我无法捕获作为Leaf状态)类的字符串strng getinfo()方法的返回类型是VOID 。但是由于接口方法的实现,我不能使它成为STRING返回类型。 任何人请解决我的问题。 提前致谢。

您需要更改界面。 让“get”方法无效是没有意义的

正如罗伯特建议的那样,为什么不将其更改为:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM