String.Emptyと""(空白文字)の違いについて

自分がお仕事を始めたときにC#でString型を初期化するときはString.Emptyを使うものだと聞いていて今までそうしていたのですが、自分でも調べてみることに

 

stackoverflow.com

 

おおよそこのStackOverflowで知りたいことが書かれていたので自分なりに解釈すると

(ベストアンサーと2番目に支持されている回答から読み取った印象)

 

コンパイルされた後にできるコートに違いはないからどちらを使ってもよい

チームで決めがあるならそれを使うべき。

 なので、どちらでもいいみたいですね。

 

ただ、一つだけ違いがあって

 

switch(str)
{
    case string.Empty: /* ここでコンパイルエラー */
        break;
    case "": /* こっちはOK */
        break;
}

 

switch文においてString.Emptyは定数ではないのでコンパイルエラーになる

という部分が違いがあるみたいです。