2016-07-18 16 views
2

私は$演算子はC#の以前のバージョンに変換されますどのようにC#

List<string> programId = new List<string>(){"1","2","3"} 
string.Join(",", Id.Select(x => $"'{x}'")) 

の古いバージョンで再利用するいくつかのコードを持っていますか?

+1

古い.NETへのバックポート?必要はありませんが、箱から出てきます。 – leppie

+1

@leppie - 文字列補間の '$'はC#6.0で新しく追加されました。 – Tim

+1

@Tim:VS2015で.NET 2を選択して使用しても、C#6コンパイラは互換性のあるコードをコンパイルします。 – leppie

答えて

9
$"'{x}'" 

は、C#の古いバージョンで

string.Format("'{0}'", x) 

に変換されます。

実際、文字列補間のバージョンはコンパイラの構文的な砂糖です。生成されたアセンブリを逆コンパイルすると、すべてがstring.Format呼び出しに解決されることがわかります。

+1

私は、ReSharperは '$'補間と 'string.Format'の間で前後に変換できると思います。 –

+2

できます。私の現在の仕事では、文字列補間を行わないCSScriptを使用しています。そのため、文字補間に変換するためのResharperの有益な提案は常に無視しています。 –

+0

私は_love_ [CSScript](http://www.csscript.net/)を使って、すべての私のセットアップビルドとデプロイスクリプトに常時使用しています!オレグは素晴らしい仕事とサポートをしてくれます。 –

4

これはいかがですか?

string.Join(",", Id.Select(x => string.Format("'{0}'", x))) 
関連する問題