Comment faire pour supprimer l'objet?

J'ai besoin de créer une méthode de classe que de supprimer l'instance.

public class Car
{
    private string m_Color;

    public string Color
    {
        get { return m_Color; }
        set { m_Color = value; }
    }

    public Car()
    {
    }

    public void Delete()
    {
        /*This method will delete the instance,
        so any references to this instance will be now null*/
    }
}

class Program
{
    static void Main( string[] args )
    {
        Car car = new Car();

        car.Delete();

        if(car==null)
            Console.WriteLine("It works.");
        else
            Console.WriteLine("It doesn't work.")
    }
}

Je veux savoir si il existe une solution possible (même si il n'est pas recommandé) comment faire cela.

Instance de cette classe seront stockées dans des centaines de classe différente. Je vais essayer de le décrire, par exemple, il y aura ces classes:

public class CarKey
{
    private Car m_Car;

    public Car Car
    {
        get { return m_Car; }
    }

    public bool CarExist{ get{ return m_Car != null; } }

    public CarKey( Car car )
    {
        m_Car = car;
    }
}

public class Garages
{
     private List<Car> m_Collection = new List<Car>();

     private int m_Size;

     public int Size{ get{ return m_Size; } }

     public Garages( int size )
     {
         for(int i=0;i<size;i++)
             m_Collection.Add(null);
     }

     public bool IsEmpty( int garage )
     {
         return m_Collection[garage] == null;
     }

     public void InsertCar( Car car, int garage )
     {
          if( m_Collection[garage] != null )
            throw new Exception("This garage is full.");

          m_Collection[garage] = car;
     }


     public Car GetCar( int garage )
     {
         if( m_Collection[garage] == null )
           throw new Exception("There is no car, maybe it was deleted.");

         return m_Collection[garage];
     }
}
Au lieu de car.Delete() pourquoi ne pas tout simplement car = null?
/*Cette méthode permet de supprimer l'instance, de sorte que toute référence à cette instance sera maintenant null*/, de sorte que toutes les réponses sur null asigment sont incorrectes.
Je ne peux pas faire ça. Dans mon programme sera des centaines de références dans différents endroits et différents format, je ne peux pas les gérer.
Pourquoi avez-vous besoin de faire cela? Le garbage collector .NET va supprimer vos objets à partir de la mémoire quand il n'y a pas plus de références. De quoi êtes-vous en train d'essayer de réaliser que le garbage collector ne pas faire pour vous? Il semble que le problème réel que vous êtes confronté à est ailleurs, dans la conception. Métaphoriquement parlant, vous vous demandez comment faire pour exécuter l'Étape 5 mais vous avez pris un mauvais virage de retour à l'Étape 2.
Chers StackOverflow: au Lieu de venir avec des avec des moyens plus créatifs pour supprimer une instance, pourquoi ne pas vous essayer d'aider les OP à résoudre son problème? Il n'a pas besoin d'aide pour décider entre un Vieille Chaussure et une Bouteille en Verre.

OriginalL'auteur user1576055 | 2013-10-20