c#System.Net.NetworkCredential

c#System.Net.NetworkCredential,c#,idisposable,networkcredentials,C#,Idisposable,Networkcredentials,System.Net.NetworkCredential没有Dispose方法。正确处理使用此类创建的对象的最佳方法是什么 JamesNT您可以在try的finally部分将对象引用设置为null var myCredential = new NetworkCredential(); try { //Do stuff here } finally { myCredential = null; } 但是,.NET垃圾回收应该在对象引用超出范围时立即将其标记为回收。您可以在尝试的

System.Net.NetworkCredential
没有
Dispose
方法。正确处理使用此类创建的对象的最佳方法是什么


JamesNT

您可以在try的finally部分将对象引用设置为null

var myCredential = new NetworkCredential();

try
{
    //Do stuff here
}
finally
{
    myCredential = null;
}

但是,.NET垃圾回收应该在对象引用超出范围时立即将其标记为回收。

您可以在尝试的最后一部分将对象引用设置为null

var myCredential = new NetworkCredential();

try
{
    //Do stuff here
}
finally
{
    myCredential = null;
}

但是,.NET垃圾收集应该在对象引用超出范围后立即将其标记为收集。

如果对象未实现
IDisposable
,则在使用完该对象后“处置”该对象的正确方法是让其超出范围

IDisposable
旨在允许对象清理它可能持有的任何非托管资源。如果对象仅包含托管资源,则没有理由处置它;所有东西都将由垃圾收集器清理

发件人:

此接口的主要用途是释放非托管资源。 垃圾回收器会自动释放分配给 当不再使用托管对象时。然而,事实并非如此 可以预测垃圾回收何时发生。此外,, 垃圾收集器不知道非托管资源,例如 窗口句柄,或打开文件和流

使用的处置方法 此接口用于在中显式释放非托管资源 与垃圾收集器连接。对象的使用者可以 当不再需要对象时调用此方法


如果一个对象没有实现
IDisposable
,那么当您使用完它时,正确的“处置”方法是让它超出范围

IDisposable
旨在允许对象清理它可能持有的任何非托管资源。如果对象仅包含托管资源,则没有理由处置它;所有东西都将由垃圾收集器清理

发件人:

此接口的主要用途是释放非托管资源。 垃圾回收器会自动释放分配给 当不再使用托管对象时。然而,事实并非如此 可以预测垃圾回收何时发生。此外,, 垃圾收集器不知道非托管资源,例如 窗口句柄,或打开文件和流

使用的处置方法 此接口用于在中显式释放非托管资源 与垃圾收集器连接。对象的使用者可以 当不再需要对象时调用此方法


如果没有IDisposable。Dispose什么使您认为它实际上需要处理?对于未实现
IDisposable
“Dispose”对您意味着什么?如果没有IDisposable。Dispose什么使您认为它实际上需要处理?Dispose是什么对于那些没有实现IDisposable的对象来说,这意味着什么?事实上,运行时可以在对象最后一次使用后收集对象。通过将其包装在try/finally中,并将null赋值给变量,您将使其无法收集的时间更长。不知道这样做是否会使对象的集合更具确定性。谢谢。。。真有趣!事实上,运行时可以在对象上次使用后收集对象。通过将其包装在try/finally中,并将null赋值给变量,您将使其无法收集的时间更长。不知道这样做是否会使对象的集合更具确定性。谢谢。。。真有趣!这就是为什么我不需要在凌晨1点做编程工作,这就是为什么我不需要在凌晨1点做编程工作。