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

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#中转义字符分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# 中作为保留关键字,但是在其他语言中也许不是。