从类中删除或处置可处置性
本文关键字:删除 | 更新日期: 2023-09-27 18:15:02
我需要将一次性对象存储为类成员。这是HttpClient这是一次性的,我可以手动处理它或把它放入使用(var client=new ....)。现在想象一下这样的情况:
public class Session
{
private HttpClient m_httpClient;
public Session()
{
m_httpClient = new HttpClient();
}
}
如何处理HttpClient
?当删除会话时,垃圾收集器是否也会处理一次性HttpClient
?c++中有析构函数。在c#中,这是不必要的。那么我是否应该让会话对象也是一次性的呢?谢谢你。
你应该通过在你的类上实现IDisposible
来处理这个问题,垃圾收集器不会自动处理这个对象。
下面是一个简化的版本,但请查看这篇文章以获得最佳实践和这个问题&回答
public class Session : IDisposible
{
private HttpClient m_httpClient;
public Session()
{
m_httpClient = new HttpClient();
}
public void Dispose()
{
m_httpClient.Dispose();
}
}