在javascript中,我可以寫 var s = 'He said "Hello" to me';
or
var s = "don't be sad";換句話說,如果我想在字符串中使用雙引號,則可以使用單引號聲明字符串。如果我想在字符串中使用單引號,可以使用雙引號聲明字符串。這超級方便。有沒有人找到一種方法在C#中做類似的事情?單引號很容易,c#已經可以與嵌入單引號一起使用。至于雙引號,似乎有2個常見的選擇。使用反斜杠轉義字符var s = "He said \"Hello\" to me";使用單引號并將其替換為雙引號var s = "He said 'Hello' to me";
s = s.Replace("'","\"");我可以接受選項2,但越好越好。
4 回答

斯蒂芬大帝
TA貢獻1827條經驗 獲得超8個贊
Javascript和C#都是基于C的。
在 C 中,用于分隔字符,并用于分隔字符串。'
"
在Javascript中沒有字符類型,所以如果你想要一個字符,你使用單字符字符串。因此,它只需要,但許多習慣于C風格語言的人習慣于并且更喜歡用于字符的單字符字符串。這很快導致人們發展出其他風格,特別是因為逃避規則會以你所說的方式方便它。"
'
C#確實有一個字符類型,以及一個字符串類型,因此它在這方面保持了C語法。
Javascript語法的功能是由于其類型系統的一個功能與C#不匹配,以及它們從C借用語法的共享歷史而出現的。如果設計人員想要它,它就不能在C#中工作,而不會使和文字之間的區別大大復雜化。string
char

慕尼黑的夜晚無繁華
TA貢獻1864條經驗 獲得超6個贊
您可以在字符串上定義擴展方法,以加快工作速度并減少鍵入錯誤的機會。
public static string ApostrophesToQuotes(this string s) { return s.Replace('\'', '"'); }
還有一種方法可以在字符串文本中編寫引號。
var s = @"he said ""Hello"" to me");
但您不能混合使用它們,因為撇號表示單字符文本(UTF-16 中的 2 字節整數),而引號表示字符串文本(字符數組)。

BIG陽
TA貢獻1859條經驗 獲得超6個贊
我決定只使用單引號,并用雙引號替換它們。
var s = "He said 'Hello' to me"; s = s.Replace("'","\"");
這有點煩人,因為我需要粘貼這樣的東西
{"children":[{"domid":"sbsmStatusFilter","datatitle":"SBS Status","dataicon":"img/appicons/rsm4-64x64.png"},{"domid":"sbsMonitoringFilters","datatitle":"Monitoring","dataicon":"img/appicons/monitoring64x64.png"}]}
然后使用文本編輯器查找替換函數將所有雙引號替換為單引號,然后添加文本替換代碼,我最終將其轉換為此
var text3 = @"{'children':[{'domid':'sbsmStatusFilter','datatitle':'SBS Status','dataicon':'img/appicons/rsm4-64x64.png'},{'domid':'sbsMonitoringFilters','datatitle':'Monitoring','dataicon':'img/appicons/monitoring64x64.png'}]}"; text3 = text3.Replace("'", "\"");
我想還不錯。至少文本相當容易閱讀,因此人們可以修改它。
- 4 回答
- 0 關注
- 218 瀏覽
添加回答
舉報
0/150
提交
取消