首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这是归还我的物品的正确方式吗?

这是归还我的物品的正确方式吗?
EN

Stack Overflow用户
提问于 2013-05-31 15:52:32
回答 4查看 132关注 0票数 3

这是启动Wireshark进程并返回文件详细信息的my Class:

代码语言:javascript
复制
    public class Capinfos
    {
        private int _packets;
        private string _duration;

    private void getPackets(string file)
    {   
        ///
    }

    private void getDuration(string file)
    {   
        ///
    }

        public int packets
        {
            get { return _packets; }
        }

        public string duration
        {
            get { return _duration; }
        }

    public Capinfos getFileDetails(string file)
        {
            this.getNumberOfPackets(file);
            this.getFileDuration(file);
            return this;
        }
}

代码语言:javascript
复制
        Capinfos capinfos = new Capinfos();
        Capinfos cap = capinfos.getFileDetails(file);

我的问题是关于getFileDetails函数,这样返回我的对象可以吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-05-31 15:59:52

为什么要引用你已经拥有的东西。如前所述,可以使用构造函数传递“构造”类所需的信息:

代码语言:javascript
复制
public class Capinfos
{
    private int _packets;
    private string _duration;

//constructor;
    public Capinfos(string file)
    {
        this.getPackets(file);
        this.getDuration(file);

    }
private int  getPackets(string file)
{   
    ///

}

private string getDuration(string file)
{   
    ///

}

    public int packets
    {
        get { return _packets; }
    }

    public string duration
    {
        get { return _duration; }
    }

}

Main:

Capinfos capinfos = new Capinfos(file);

票数 3
EN

Stack Overflow用户

发布于 2013-05-31 15:57:53

还可以将getFilesDetails方法实现为静态工厂方法。

代码语言:javascript
复制
public class Capinfos
{
    private int _packets;
    private string _duration;

private void getPackets(string file)
{   
    /// 
}

private void getDuration(string file)
{   
    ///
}

    public int packets
    {
        get { return _packets; }
    }

    public string duration
    {
        get { return _duration; }
    }

public static Capinfos GetFileDetails(string file)
    {
       var info = new Capinfos(file); //allowed, because it's the same class
        info.getNumberOfPackets(file);
        info.getFileDuration(file);
        return info;
    }

}

用法

代码语言:javascript
复制
var cap = Capinfos.GetFileDetails(file);
票数 2
EN

Stack Overflow用户

发布于 2013-05-31 15:53:48

实际上,我会将该文件作为构造函数。您没有像使用StringBuilder那样使用构建器模式,所以返回相同的引用是很奇怪的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16861252

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档