有没有办法像在 javascript 中那样在 C# 中交替使用单引号和双引号?
Is there a way to alternate single and double quotes in C# like you can in javascript?
在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,但越多越好。
不行,没办法。
单引号'
是char
变量分隔符
双引号"
是string
变量分隔符
查看 MS string programing guide 了解更多信息。
Javascript 和 C# 都是基于 C.
在C语言中,'
用于分隔字符,"
用于分隔字符串。
在Javascript中没有字符类型,所以如果你想要一个字符,你可以使用单字符字符串。因此它只需要 "
但许多习惯于 C 风格语言的人习惯于使用 '
并且更喜欢这种用于字符的单字符字符串。这很快导致人们开发其他样式,特别是因为转义规则会按照您所说的方式提供方便。
C# 确实有字符类型和字符串类型,所以在这方面它保留了 C 语法。
Javascript 语法的特性是由于其类型系统的特性与 C# 不匹配,以及它们从 C 借用语法的共同历史而产生的。它在 C# 中不起作用,如果设计师们想要它,而不会使 string
和 char
文字之间的区别变得非常复杂。
我决定只使用单引号并将其替换为双引号。
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("'", "\"");
我想还不错。至少文本相当容易阅读,因此人们可以修改它。
您可以在字符串上定义您的扩展方法,以稍微加快您的工作并减少输入错误的机会。
public static string ApostrophesToQuotes(this string s)
{
return s.Replace('\'', '"');
}
还有另一种在字符串文字中写引号的方法。
var s = @"he said ""Hello"" to me");
但是你不能混合使用它们,因为撇号用于单个字符文字(UTF-16 中的 2 字节整数)而引号用于字符串文字(字符数组)。
在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,但越多越好。
不行,没办法。
单引号'
是char
变量分隔符
双引号"
是string
变量分隔符
查看 MS string programing guide 了解更多信息。
Javascript 和 C# 都是基于 C.
在C语言中,'
用于分隔字符,"
用于分隔字符串。
在Javascript中没有字符类型,所以如果你想要一个字符,你可以使用单字符字符串。因此它只需要 "
但许多习惯于 C 风格语言的人习惯于使用 '
并且更喜欢这种用于字符的单字符字符串。这很快导致人们开发其他样式,特别是因为转义规则会按照您所说的方式提供方便。
C# 确实有字符类型和字符串类型,所以在这方面它保留了 C 语法。
Javascript 语法的特性是由于其类型系统的特性与 C# 不匹配,以及它们从 C 借用语法的共同历史而产生的。它在 C# 中不起作用,如果设计师们想要它,而不会使 string
和 char
文字之间的区别变得非常复杂。
我决定只使用单引号并将其替换为双引号。
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("'", "\"");
我想还不错。至少文本相当容易阅读,因此人们可以修改它。
您可以在字符串上定义您的扩展方法,以稍微加快您的工作并减少输入错误的机会。
public static string ApostrophesToQuotes(this string s)
{
return s.Replace('\'', '"');
}
还有另一种在字符串文字中写引号的方法。
var s = @"he said ""Hello"" to me");
但是你不能混合使用它们,因为撇号用于单个字符文字(UTF-16 中的 2 字节整数)而引号用于字符串文字(字符数组)。