前言
在敲三层的时候遇到了很多加@的标识符,并不是之前在看C#视频的时候加@是忽略转义字符,能读出文件地址用法。然后把三层中代码前的@去掉了,还是可以运行,没有报错,那么总结一下@的作用吧。
忽略转义字符
例:
string path="D:\abc\";
\是转义字符,所以这个地方要@忽略转义字符,加了@告诉系统,@后边的字符串当作正常的字符串就好不用转义:
string path=@"D:\abc\";
扩展不用@怎么读路径:string path="D:\\abc\\";要多加个斜杠
防止换行,避免sql防注入
使用字符串拼接sql语句,很容易造成sql注入,常用的做法是使用参数传递,后边不管换多少行,都表示一个字符串,如果不加@换行写就会出错。
cmd.CommandText = @"insert INTO SCORES(ID,UserName,Score)
Values(@ID,@UserName,@Score) ";
在标识符中的用法
@加在变量前面,表示后面接的是变量,使变量名与关键字不冲突吗,这种方法称为“逐字标识符”。
//int int =1;是不能声名的
int @int =1;//@是关键字不冲突,可以声明了
cmd.Parameters.Add(new SqlParameter("@UserName", userName));//为了更好的区分变量和实体,不加也不错