1. 程式人生 > >C#字符串連接問題(包含破折號和引號)

C#字符串連接問題(包含破折號和引號)

如何 圖片 png ram exp 分享圖片 而已 轉義 get

1.需求場景:

生成字符串如下:jsonStr.Append("\"SensorTypes\":");

解決方法:

string code = @"jsonStr.Append(""\""SensorTypes\"":""); ";

學到的知識點:

1.@符在C#中有兩種用法:

a.在字符串前加上@符號,表示取消字符串中的轉義。如上例所示:加上@符之後,字符串中的\不再當成轉義字符,而僅僅是\而已。

b.如果你起的對象/字段名稱和C#本身自帶的關鍵字沖突,也可以在名稱前加上@符號(不推薦此用法,自己寫的代碼盡量不要和關鍵字沖突)。

        /// <summary>
/// 是否選中 /// </summary> public string @checked { get; set; }

c.一開始的時候一直想利用轉義字符\,稀裏糊塗加了一堆破折號,生成的代碼中沒有破折號,結果也大相徑庭。後來用@解決了生不成\的問題。然後發現如果你想生成的字符串中含有1個雙引號,那麽你需要在代碼中這樣寫"",

如果想生成的字符串中含有2個",那代碼需要這樣寫"""",以此類推。

例子1:

技術分享圖片

例子2:

//目標代碼:jsonStr.Append("\"" + property.Name + "\":\"" + property.GetValue(sensor.SensorTypes[i], property.GetIndexParameters()) + "\"");
string code = @"jsonStr.Append(""\"""" + property.Name + ""\"":\"""" + property.GetValue(sensor.SensorTypes[i], property.GetIndexParameters()) + ""\""""); ";

技術分享圖片

寫在後面的話:其實這個問題困擾了我一段時間,一直不知道如何下手,試了幾種寫法,都不對。然後自己就不想解決了,後來靜下心來,其實也沒有那麽難。現在回過頭一看,so easy。其實很多時候都是被自己想的困難給嚇倒了,需要學習的東西還有很多,繼續加油!

C#字符串連接問題(包含破折號和引號)