我尝试在 C#6 中使用制表符进行字符串插值 $""
var name="My Name";
var text =$"\t\t{name}";
它工作正常,制表符 \t 已解决。
当尝试使用时长字符串插值线 https://stackoverflow.com/questions/31764898/long-string-interpolation-lines-in-c6
var name = "myname";
var text = $@"\t\t{name}
tab and name is in a Long string interpolation \r\n
";
Console.WriteLine(text);
output
\t\tmyname
tab and name is in a Long string interpolation \r\n
制表符 \t 、\r 和 \n 未解析
所以我不得不使用 string.Format() 来解决这个问题。
问题:
这是长字符串插值的限制吗,因为在 c#6(甚至 c#7)中不支持 \t \r \n
你有逐字修饰符@
位于该字符串前面,因此制表符将不会转义并被视为普通文本。如果您想将它们包含在字符串中,那么您可以将这些字符括在大括号中(因为您还使用了$
字符串插值修饰符),因此它们被视为制表符(与回车符和换行符相同):
var name = "myname";
var text = $@"{"\t\t"}{name}
tab and name is in a Long string interpolation {"\r\n"}
";
Console.WriteLine(text);
Alternatively, since it's a verbatim string, you can just press Tab (or Enter) keys where you want those characters in the string.
该字符串与上面的字符串相同:
var text = $@" {name}
tab and name is in a Long string interpolation
";
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)