对@ 的作用不是很清晰,学习了一下,站在巨人的肩膀上总结如下:
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 eINNER JOIN Person.Contact AS cON e.ContactID = c.ContactIDORDER 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_StatusFROM ( SELECT * FROM [CustomDB].[dbo].[Orbo_VRS_Data]WHERE ID > '{startId.ToString()}'AND DateEnterMES BETWEEN @startTime AND @endTimeAND 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 vrsLEFT join [CustomDB].[dbo].[Orbo_AOS_Data] as aosON vrs.BC_2DID=aos.BC_2DIDAND vrs.Array_ID = aos.Array_IDAND vrs.Unit_ID = aos.Unit_IDAND vrs.x = aos.xAND vrs.y = aos.yLEFT join [CustomDB].[dbo].[MES_DefectToBinCode] as BinToDefectON 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";
