Object Behaviour
<p>Can anyone explain the behaviour of the below code. The output of the below code is string "str" and i's value is 100.</p>

<p>But why is it so? After setting object c1 = null, why isn't it null?</p>

<pre><code>public class Class1
{
    public int i;
    public Class1()
    {
        i = 10;
    }    

    public string method1()
    {
        return "str";
    }
}

public class Class2
{
    public void method2(Class1 c1)
    {
        c1.i = 100;
        c1 = null;
    }
}

    void main()
    {
        Class1 c1 = new Class1();
        Class2 c2 = new Class2();
        c2.method2(c1);
        Response.Write(c1.method1());
        Response.Write(c1.i.ToString());
    }
</code></pre>
