对@ 的作用不是很清晰,学习了一下,站在巨人的肩膀上总结如下:
1.忽略转义字符
例如
string fileName = "D:\\文本文件\\text.txt";
使用@后
string fileName = @"D:\文本文件\text.txt";
2.让字符串跨行
例如
string strSQL = "SELECT * FROM HumanResources.Employee AS e"
+ " INNER JOIN Person.Contact AS c"
+ " ON e.ContactID = c.ContactID"
+ " ORDER BY c.LastName";
使用@后
string strSQL = @"SELECT * FROM HumanResources.Employee AS e
INNER JOIN Person.Contact AS c
ON e.ContactID = c.ContactID
ORDER BY c.LastName";
3.在标识符中的用法
C#是不允许关键字作为标识符(类名、变量名、方法名、表空间名等)使用的,但如果加上@之后就可以了
例如
public static void @static(int @int)
{
if (@int > 0)
{
System.Console.WriteLine("Positive Integer");
}
else if (@int == 0)
{
System.Console.WriteLine("Zero");
}
else
{
System.Console.WriteLine("Negative Integer");
}
}
4.在SQL T-CODE中的用法
comStr = $@"SELECT vrs.*, BinToDefect.XML_BinCode,BinToDefect.XML_Defect_Name, BinToDefect.Result, aos.Rework_Status
FROM ( SELECT * FROM [CustomDB].[dbo].[Orbo_VRS_Data]
WHERE ID > '{startId.ToString()}'
AND DateEnterMES BETWEEN @startTime AND @endTime
AND LotNO_MES='605000228877'
AND Classify !=''
AND BC_2DID !='' AND BC_2DID !='0' AND BC_2DID !='-1'
AND Unit_ID !='' AND Unit_ID !='0' AND Unit_ID !='-1'
AND Array_ID !='' AND Array_ID !='0' AND Array_ID !='-1' ) as vrs
LEFT join [CustomDB].[dbo].[Orbo_AOS_Data] as aos
ON vrs.BC_2DID=aos.BC_2DID
AND vrs.Array_ID = aos.Array_ID
AND vrs.Unit_ID = aos.Unit_ID
AND vrs.x = aos.x
AND vrs.y = aos.y
LEFT join [CustomDB].[dbo].[MES_DefectToBinCode] as BinToDefect
ON BinToDefect.Classify = vrs.Classify AND BinToDefect.Station='VRS'
ORDER BY vrs.BC_2DID,vrs.Layer_Name,vrs.Array_ID,vrs.Unit_ID,vrs.x,vrs.y";