【发布时间】:2015-11-30 12:18:39
【问题描述】:
WiresharkFile abstract 类:
public abstract class WiresharkFile
{
private PlayBehavior _playBehavior;
public void Transmit()
{
_playBehavior.Transmit();
}
public virtual void Dispose()
{
// Implemented inside inherit classes.
}
}
播放选项abstract类:
public abstract class PlayBehavior
{
public WiresharkFile wiresharkFile;
public abstract void Transmit();
}
子类播放选项:
public class Normal : PlayBehavior
{
public override void Transmit()
{
using (this.wiresharkFile)
{
}
}
}
所以我有这个派生类:
public class Libpcap : WiresharkFile, IDisposable, IEnumerable<Packet>
{
private BinaryReader binaryReader;
public void Dispose()
{
if (binaryReader != null)
binaryReader.Close();
}
...
// Severl methods
...
public override void SendPackets()
{
base.Transmit();
}
}
我的问题:
在这个Libpcap 类中调用base.Transmit():在哪里使用 using ?
在这个 Libpcap 类 SendPackets() 内部:
public override void SendPackets()
{
using(this)
{
base.Transmit();
}
}
或者在Normal类Transmit()里面:
public class Normal : PlayBehavior
{
public override void Transmit()
{
using (this.wiresharkFile)
{
}
}
}
【问题讨论】:
-
请阅读有关 using 关键字以及何时使用它的文献。您将它用于实现 IDisposable 接口的对象。
-
我的对象实现了 IDisposable。
标签: c# using binaryreader