C#中转义字符[转]
https://www.cnblogs.com/muran/p/3174865.html
编程中很多细节问题我们都要十分的注意,要不一个小小的字母错误就能引起程序的无法运行。
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# 中作为保留关键字,但是在其他语言中也许不是。
最新文章
- java-excel导出
- Codeforces Round #370 (Div. 2) A B C 水 模拟 贪心
- linux下cat命令详解
- 曲面Shader
- Eclipse中如何恢复已删除文件
- Error parsing XML: not well-formed (invalid token)
- MFC、C++ 、Windows编程高手
- Spring事务传播机制和数据库隔离级别
- mac os安装shell man中文帮助工具(manpages-zh),即man命令显示中文帮助文档
- JS引擎的执行机制:探究EventLoop(含Macro Task和Micro Task)
- python第一周语言基础
- leetcode105
- stacking过程
- hdu 4882 比赛罚时贪心
- 在VirtualBox虚拟机中安装Centos操作系统怎么与本地XShell远程连接
- shell 判断字符串长度是否不为0
- 华为大数据项目fusionInsight
- css做中划线与文字排版
- gsub函数
- 【leetcode刷题笔记】Next Permutation
热门文章
- Bzoj4818:生成函数 快速幂
- luoguP3920 [WC2014]紫荆花之恋 动态点分治 + 替罪羊树
- Android任务和返回栈完全解析(转)
- css实现背景图片模糊
- Java Web c3p0 pool池泄漏优化与日志分析
- Calculate CRC32 as in STM32 hardware (EWARM v.5.50 and later)
- iphone手势识别(双击、捏、旋转、拖动、划动、长按)UITapGestureRecognizer
- C#编程(五十五)----------HashSet和SortedSet
- ifeq endif
- [Android实例] Handler+ExecutorService(线程池)+MessageQueue模式+缓存模式