星鸿阁

 找回密码
 立即注册
搜索
热搜: 活动 交友 动画
查看: 1155|回复: 0

C#的转义字符

[复制链接]

2250

主题

2760

帖子

9610

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
9610
发表于 2020-10-12 13:51:43 | 显示全部楼层 |阅读模式
一、转义字符
C#允许按常规的转义字符处理的方式来给字符串常量赋值,如果编译器检测到你正在为一个字符串变量赋值,你在其中写的双斜扛将不会被当作注释符。例如,下面的赋值是合法的,我们可以通过下面的赋值语句给变量赋予带有双斜杠的值:
string DbSlashURL = "http://www.ciznx.com/";
string DbEscapeFullFilePath = "C:\\inetput\\ciznxcom\\";  //带转义的字符串赋值语句
这里列举一些常用的转义字符,备查:

转义符
字 符 名
字符的Unicode值
转义符
字 符 名
字符的Unicode值
\'
单引号            0x0027         \f换页0x000c
\"
双引号
0x0022
\n
新行0x000A
\\
反斜杠
0x005c
\r
回车0x000D
\0
空字符
0x0000
\t
水平制表符0x0009
\a
警告(产生蜂鸣)
0x0007
\v
垂直制表符0x000B
\b
退格
0x0008



二、逐字字符串
更加令我们欣喜的是,C#的作者很大方地将字符串赋值这一功能做了十分广阔的扩展:在C#中,我们可以将所有字符直接作为字符串常量的值赋给字符串量,甚至包括了平时在我们看来是一定需要转义的各种字符;要实现这一切仅需要在字符串常量的值前加一个符号“@”,以这种形式赋值的字符串叫做逐字字符串,它后面的所有字符都被逐个地收录到字符串的值中!

因此,如果你需要类似“所见所得”效果的赋值,逐字字符串赋值方式会是你的首选!
此外,需要注意的是,当使用符号 "@" 为字符串赋值时,被赋值的所有字符将不需要经过转义——只有双引号这个本身作为界限的字符需要经过转义,此时它的转义输入方法是两个放在一起的双引号:""
在以这种方式给变量赋值时,也只有这唯一一个转义是合法的。如果希望诸如换行、制表符此类字符在字符串体现出来,也可以直接将带有换行与制表符的字面量字符串赋给字符串量;不过这样,就不能在换行前的前一行写注释或其他语句,否则这些语句将被当作字符串值的一部分。

在下面例子中的语句,可以实现不完成输入一系列不经转义的特殊字符:
(1) 逐字:
string NoEscapeFullFileName = @"C:\inetpub\ciznxcom\";   // (此句中的反斜扛被直接赋值)
(2)双引号:
string StringWithDbQoute = @"Jim says,""he can reach home in about six minutes""."   //(此句中双引号被转义)
(3)换行: 相当于加一个回车\r  而不是\n
string StringWithNextLineChar = @"We can set a string value for a string variable
with such a ""NextLine"" char.";   //   (此句中给字符串变量赋予了回车符,且未经任何转义;并且保持所有空格)

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|starfluidga

GMT+8, 2024-12-30 08:19 , Processed in 0.013674 second(s), 20 queries .

Made by Liga 星鸿阁

Copyright © 2020-2048, LigaStudio.

快速回复 返回顶部 返回列表