Method where scopes defined explicitly.
static void Main(string[] args)
{
    Class1 c1 = new Class1(1);
    {
        Class1 c2 = new Class1(2);
        {
            Class1 c3 = new Class1(3);
        }
    //this is not collecting object c3 which is out of scope here
    GC.Collect();
    }
    //this is not collecting object c2 which is out of scope here
    GC.Collect();
    Console.ReadKey();
}
Class1 definition:
class Class1
{
    int x;
    public Class1(int a)
    {
        x = a;
    }
    ~Class1()
    {
        Console.WriteLine(x + "object destroy");
    }
}
I write this code. But GC.Collect() method don't collect the object which goes out of scope.
 
     
     
     
     
    