В приведенном ниже примере ... Поскольку класс имеет интерфейс IDisposable, а сам класс - это только объекты памяти управления (а не неуправляемая память), поэтому в сценарии ниже внизу (см. Case # 1 и case # 2) - Каков правильный способ сделать удаление, когда это делается с объектами списка?Каков правильный способ использования IDisposable?
public class VehicleA : IDisposable
{
public void Dispose() { }
public string Year {get;set;}
public string Make {get;set;}
public string Model {get;set;}
}
public class repositoryVehicle()
{
public List<VehicleA> VehicleLookup()
{
List<VehicleA> returnVehicles = new List<Vehicle>();
returnVehicles.Add(new VehicleA { Year="2007", Make="Ford", Model="Mustang" });
returnVehicles.Add(new VehicleA { Year="2004", Make="Chevy", Model="Blazer" });
return returnVehicles;
}
}
//Case #1...
foreach(var v in repositoryVehicle.VehicleLookup())
{
//v.Year...
}
//Case #2...
List<VehicleA> vehicles = new List<VehicleA>();
vehicles = repositoryVehicle.VehicleLookup();
//vehicles[x].Year...
Если ваш класс не имеет ничего, что нуждается в особых очистках, почему это реализовать IDisposable? –
Возможно, релевантно: http://stackoverflow.com/questions/538060/proper-use-of-the-idisposable-interface – Chris
взгляните на это SO Q & A на [когда использовать IDisposable с управляемыми ресурсами] (http: // stackoverflow.com/questions/3908463/idisposable-interface) – jltrem