编程中很多细节问题我们都要十分的注意,要不一个小小的字母错误就能引起程序的无法运行。

C#中转义字符分2中,一种是\,一种是@。

@符号在C#中有两个作用
作用1、在字符串的前面加@表示取消字符串中的转义
例如 string path=@"d:\root\subdir";
作用2、如果用户定义的对象名和系统关键字冲突,可以在变量前面加入@
例如 string @Class="this is a test";

转义字符    字符名称    
\'    单引号    
\"    双引号    
\\    反斜杠    
\0    空字符    
\a    警报符    
\b    退格    
\f    换页    
\n    换行    
\r    回车    
\t    水平制表    
\v    垂直制表    
 
一 字符串中的用法
Verbatim字符串
    对于verbatim字符串,编译 器会严格按照原样对其进行解释。也就是说,即使这个字符串跨越多行,或是包含转义字符,编译器也将不予理会,即这些格式和转义符将按照原样输出。唯一例外的是引号,编译器必须将其转义,因为只有这样才能确定字符串的边界。
    Verbatim字符串的定义语法为以@符号开始,后面紧跟包含在引号中的字符串。例如:
string sample = @"Hello";
string sample = @"Hello\tworld"//生成Hello\tworld
以下是一个实用的示例:
string sample=@"C:\My Documents\sample.txt";
//结果为:C:\My Documents\sample.txt,如同语句:string sample="C:\\My Documents\\sample.txt"
    若想在Verbatim字符串内使用引号,必须使用附加的引号组将其转义。例如,生成字符串"Hi"的代码如下:
String s=@" " "Hi"""//注意:两边都有3个引号
上述代码将生成下列字符串:
"Hi"

 

字符@表示,其后的字符串是个“逐字字符串”(verbatim string)。
@只能对字符串常量作用。
1.用于文件路径
以下是引用片段:
string s_FilePath ="C:\\Program Files\\Microsoft.NET\\test.txt";
相当于
以下是引用片段:
string s_FilePath =@"C:\Program Files\Microsoft.NET\test.txt";

2.用@表示的字符串能够跨越数行。用于在CS中写JS或SQL代码比较方便。
以下是引用片段:
string s_MultiRows = @"Line1 
Line2 
Line3"; 
string s_JavaScript = @" 
";

二 标识符中的用法

在 C# 规范中, @ 可以作为标识符(类名、变量名、方法名等)的第一个字符,以允许C# 中保留关键字作为自己定义的标识符。

以下是引用片段:
class @class 

public static void @static(bool @bool) { 
if (@bool) 
System.Console.WriteLine("true"); 
else 
System.Console.WriteLine("false"); 


class Class1 

static void M() { 
clu0061ss.stu0061tic(true); 

}

注意,@ 虽然出现在标识符中,但不作为标识符本身的一部分。
因此,以上示例,定义了一个名为 class 的类,并包含一个名为 static 的方法,以及一个参数名为了 bool 的形参。

这样,对于跨语言的移植带来了便利。因为,某个单词在 C# 中作为保留关键字,但是在其他语言中也许不是。

C#中转义字符的更多相关文章

  1. 微信小程序中转义字符的处理

    在微信小程序开发过程中,有时候会用到常用的一些特殊字符如:‘<’.‘>’.‘&’.‘空格’等,微信小程序同样支持对转义字符的处理,下面提供两种方法用来处理微信小程序中转义字符的处理 ...

  2. C#中转义字符[转]

    https://www.cnblogs.com/muran/p/3174865.html 编程中很多细节问题我们都要十分的注意,要不一个小小的字母错误就能引起程序的无法运行. C#中转义字符分2中,一 ...

  3. JAVA中转义字符

    JAVA中转义字符 2010年08月11日 星期三 上午 12:22 JAVA中转义字符: 1.八进制转义序列:\ + 1到3位5数字:范围'\000'~'\377'       \0:空字符 2.U ...

  4. shell编程学习笔记(四):Shell中转义字符的输出

    通过echo可以输出字符串,下面看一下怎么输出特殊转义字符,首先我先列出来echo的转义字符: \\ 输入\ \a 输出警告音 \b 退格,即向左删除一个字符 \c 取消输出行末的换行符,和-n选项一 ...

  5. java中转义字符和路径符

    来源于:http://blog.csdn.net/u011479200/article/details/69062343 在Java的实际开发中,经常会遇填写一个文件的相对路径或者是绝对路径的问题,对 ...

  6. 关于json中转义字符/正斜杠的问题。

    1.首先有关转义字符 可以看百度百科: 先不管/是否需要转义,我们去json的官方网站去看看:http://www.json.org/ 可见有这个,那么意思是 json中 又规定建议了一下,意思是虽然 ...

  7. 160311、mybatis sql语句中转义字符

    问题: 在mapper  ***.xml中的sql语句中,不能直接用大于号.小于号要用转义字符 解决方法:   1.转义字符串 小于号    <    < 大于号    >    & ...

  8. 解决mybatis中转义字符的问题

    xml格式中不允许出现类似“>”这样的字符,有如下两种解决方法 方法一:使用转义字符 SELECT * FROM test WHERE 1 = 1 AND start_date <= CU ...

  9. mybatis sql语句中转义字符

    问题: 在mapper  ***.xml中的sql语句中,不能直接用大于号.小于号要用转义字符 解决方法:   1.转义字符串 小于号    <    < 大于号    >    & ...

随机推荐

  1. 权限设计实现(MVC4+Bootstrap+ PetaPoco+Spring.Net)

    权限设计实现(MVC4+Bootstrap+ PetaPoco+Spring.Net) 一.前言 至毕业后一直在做企业Web开发,做过的项目也有不少,每个项目的框架设计都不是一样,但是每个项目的权限模 ...

  2. Session变量不能转移到下页.解决: session.use_trans_sid = 1

    附:文摘 ============================================================ 在PHP使用SESSION的朋友可能会碰到这么一个问题.SESSIO ...

  3. leetcode第16题--3Sum Closest

    Problem:Given an array S of n integers, find three integers in S such that the sum is closest to a g ...

  4. html5 Geolocation(地理位置定位)学习

    1.html5 Geolocation html5 Geolocation API 使用很简单,请求一个位置信息,如果用户同意,浏览器会返回一个位置信息,该位置是通过用户的底层设备(手机,电脑) 提供 ...

  5. jquery 移动端轮播图

    <div class="slide"> <div class="slide-box"> <ul class="slide ...

  6. Reporting Service部署之访问权限

    原文:Reporting Service部署之访问权限 SQL Server Reporting Services 并非专门设计用于 Internet 报表部署方案,但是您可以成功地将 Reporti ...

  7. 【转】Android 网络通信框架Volley简介(Google IO 2013)

    Volley主页 https://android.googlesource.com/platform/frameworks/volley http://www.youtube.com/watch?v= ...

  8. 仿javascript中confirm()方法的小插件

    10天没有写博客了,不知道为什么,心里感觉挺不舒服的,可能这是自己给自己规定要去完成的事情,没有按照计划执行,总会心里不怎么舒服.最近事情挺多的,终于今天抽空来更新一下博客了. 今天写的是一个小插件. ...

  9. asp.net、mvc、ajax、js、jquery、sql、EF、linq、netadvantage第三方控件知识点笔记

    很简单,如下: 父页面:(弹出提示框) function newwindow(obj) { var rtn = window.showModalDialog('NewPage.htm','','sta ...

  10. SignalR1

    SignalR循序渐进(一) 前阵子把玩了一下SignalR,起初以为只是个real-time的web通讯组件.研究了几天后发现,这玩意简直屌炸天,它完全就是个.net的双向异步通讯框架,用它能做很多 ...