也来谈谈C#支持的字符串形式:规则字符串和逐字字符串

我在这里简单介绍一下C#支持的字符串形式:
1.规则字符串(regular-string-literal),所谓规则字符串就是包含在双引号之间的0个或者多个字符所组成的字符串(比如:"literal"),并且里面可以还有我们经常遇到的转义字符("\n","\t"...),规则字符串中的这些转义字符不会被当做正常的字符输入了,我个人的理解是:所谓转义,就是把字符本来的意思改变了,例如\a,a字符本来只是一个简单的字符,但是加上了'\'就变成了警告声音
2.逐字字符串
我们单单从字面就可以看出,"逐字"很可能就是一个字符一个字符的,不错,我们完全可以理解为就是一个字符一个字符(双引号除外,等下单独说)的添加到字符串变量中(注意:字符串的不可变性,我们只是这么理解),即便里面有我们上面提到的用于转义的反斜线'\',可是我们不是说了有反斜线就会改变字符原本的意义吗,为什么这里不是呢?答案就是逐字字符串使用了'@'这个字符,一旦使用了这个字符,反斜线就失去了转义的功能,而是当做一个普通的字符收录到字符串中.

说到这里我们就有点奇怪了,@有这么大的能力?确实是,一旦在字符串的前面使用了@就有了一下的功能:

a.取消转义,例如:@"\a"  输出结果:\a  而不是"警告声"了
   i.在这里有个更重的用处就是在使用"路径"时,例:string path ="C:\\test\\"-->容易出错;而我们使用了@就可以直接使用string path=@" rel="nofollow"C:\test\";

b.实现字符串换行,我们知道普通字符串是包在双引号中的,而且必须在同一行,一旦换行就会报错,但是有了@,就可以了,

                    例如:string str=@"我是一个

                                 字符串";

c.@既然取消了转义,@"\"",肯定不能输出\",因为"是特殊的,那我们怎么输出双引号呢?答案是:我们使用""代表一个引号("),所有要输出"Hello",我们就要写成string str=@"""Hello""";

 

转载于:https://www.cnblogs.com/XiaoAi3/archive/2012/06/13/2548642.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值