A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李朋朋 中级黑马   /  2012-7-17 13:37  /  2277 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

c#中@转义字符,有两中含义,一、在字符串前加@字符串中\不再转义,二,字符串输出可以换行。但如果在字符串里想加“,为什么需要加两个””,我们该如何理解,如何记忆?

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

4 个回复

正序浏览
本帖最后由 黑马杨凯 于 2012-7-18 00:51 编辑

举个例子,输出  
                目录:
                "C:\QQ\124123889.txt "
这个字符串效果

1.前面加了@ 那么想输出一个\,就不用在前面加上\了,因为此时\没有转义的作用了,那么\n也就不再表示换行,换行可以直接打回车,此时的字符串可以写在多行里,输出效果和字符串的效果一致,代码应为:   

Console.WriteLine(@"目录:
""C:\QQ\124123889.txt"" "); //此处使用@,引号要双写输出,也是为了防止一半引号错误的与前面的引号配对,造成误解

2.不加@的话,输出为单个\就得双写,防止\后面有字母正好组成转义字符,产生误解,应为  

Console.WriteLine("目录:\n\"C:\\QQ\\124123889.txt\" "); //此处没用@,\"即表示输出引号

其实只要理解这么做的用意就很好记忆了,规则就是为了防止出现对程序错误的解读,确保达到咱们的目的

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
二,字符串输出可以换行。但如果在字符串里想加“,为什么需要加两个””,我们该如何理解,如何记忆?
这是语法规定,没有为什么。不用去刻意的记忆,忘了直接MSDN。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
就好像你要输出:黑马程序员“加油”
如果你写成string str = @"黑马程序员"加油"";是不行的因为引号把他分成了两份,第一部分:"黑马程序员",第二部分:"",这样的话加油就没在双引号之内。不表示一个字符串了,
所以就好加两个这样写: @"黑马程序员""加油""",加油也被引号引了。
这是我自己想象记忆的,希望能帮到你!

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
例如将the calss "Stu" contains three students.赋值给’text’,
可以使用如下的语句:string text = @"the calss "Stu" contains three students."。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马