C#の文字列では設定された文字列の値を変更できないとのことですが、
これは例えば、

string strSql = "select"; を
strSql = "insert"; に変えたとき、実体が変更されるのではなくコピー
されてるっていうことなんでしょうか。
また、そうであれば、何でこのような動作をするんでしょうか。