difference between string and stringbuffer in c#