It might be because it's immutable.
    class A
    {
        public string a;
    }
    static void Main(string[] args)
    {
        A a1 = new A();
        A b1 = new A();
        string a = "abc";
        a1.a = "abc";
        string b = "ca";
        b1.a = "ca";
        a = b;
        a1 = b1;
        b = "cab";
        b1.a = "cab";
        Console.WriteLine(a);
        Console.WriteLine(a1.a);
        Console.ReadLine();
    }
The answer is "ca" for a and "cab" for a1.a, and that's what I answered in an interview question and I explained the reason as "immutability" of string.
But the interviewer didn't look convinced. Could someone provide a convincing explanation of the above code?
 
     
     
     
     
    