我胆敢在处置和最后敲定之间发神经。
public class Car:IDisposable
{
public string name;
public Car()
{
name = "My Car";
}
public void Dispose()
{
Console.WriteLine("This object has been disposed");
}
}
public static void Main()
{
Car anotherCar;
using (var car = new Car())
{
anotherCar = car;
Console.WriteLine("Before dispose. Name is: "+anotherCar.name);
}
Console.WriteLine("After dispose. Name is: "+anotherCar.name);
}
结果是:
Before dispose. Name is My Car
This object has been disposed
After dispose. Name is My Car
我的问题是: 因为 C# 会在 < code> using {%/ code> 后自动处置对象, 所以在“ enfortending” 线上, anotherCar. name code> 必须是 NULL。 为什么它仍然是“ my car ”?
我的另一个问题是:我的书说,出于某种原因,你不应该使用 GC.collect ()
, 其中之一是性能。所以,谁处置对象?如果那是垃圾收集器,那么我认为dipose ()
与终局()
有同样的性能问题。
谢谢:)