No método AlterarDadosVeiculo() da classe Pátio, não deveria ser passado dois objetos pra alterar o objeto veículo "original"? Por exemplo:
public Veiculo AlterarDadosVeiculo(Veiculo veiculoOriginal, Veiculo veiculoAlterado)
{
var veiculoTemp = (from veiculo in this.Veiculos where veiculo.Placa == veiculoOriginal.Placa select veiculo).SingleOrDefault();
veiculoTemp.AlterarDados(veiculoAlterado);
return veiculoTemp;
}
Fiquei com dúvida se na forma como está na aula realmente está sobrescrevendo os dados do primeiro objeto veículo, ou se altera só o objeto veículoAlterado.