这是启动Wireshark进程并返回文件详细信息的my Class:
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;
}
}主
Capinfos capinfos = new Capinfos();
Capinfos cap = capinfos.getFileDetails(file);我的问题是关于getFileDetails函数,这样返回我的对象可以吗?
发布于 2013-05-31 15:59:52
为什么要引用你已经拥有的东西。如前所述,可以使用构造函数传递“构造”类所需的信息:
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);
发布于 2013-05-31 15:57:53
还可以将getFilesDetails方法实现为静态工厂方法。
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;
}}
用法
var cap = Capinfos.GetFileDetails(file);发布于 2013-05-31 15:53:48
实际上,我会将该文件作为构造函数。您没有像使用StringBuilder那样使用构建器模式,所以返回相同的引用是很奇怪的。
https://stackoverflow.com/questions/16861252
复制相似问题