[英]How to begin “block of string” formatting in C#?
我必须在C#代码中编写一些查询,并且对格式有疑问。 见下文:
string sql = "SELECT * ";
sql += "FROM HYT_User_Vehicle_Group_Assoc ";
sql += "INNER JOIN HYT_Vehicle_Group ON HYT_Vehicle_Group.Vehicle_Group_No = HYT_User_Vehicle_Group_Assoc.Vehicle_Group_No ";
来自PHP背景,这就是我用PHP编写的方式:
$sql = "SELECT *
FROM HYT_User_Vehicle_Group_Assoc
INNER JOIN HYT_Vehicle_Group ON HYT_Vehicle_Group.Vehicle_Group_No = HYT_User_Vehicle_Group_Assoc.Vehicle_Group_No";
注意,我不必总是为字符串中的每一行写一个sql +=
吗? 有什么办法告诉C#我要开始一个“字符串块”,这样我就不必总是键入sql +=
?
是的-通过将@放在前导“之前,使用逐字字符串文字 :
string sql = @"SELECT *
FROM HYT_User_Vehicle_Group_Assoc
INNER JOIN HYT_Vehicle_Group
ON HYT_Vehicle_Group.Vehicle_Group_No = HYT_User_Vehicle_Group_Assoc.Vehicle_Group_No";
请注意,这也消除了使用反斜杠进行转义的情况-它对正则表达式和Windows文件路径非常有用的一次。 要在逐字字符串文字中包含双引号,请将其加倍:
string text = "Jon says, ""Verbatim string literals."" And that's all.";
请注意,对于特别大的文本代码块,我可能会将它们粘贴在单独的嵌入式资源中,或者使用ORM,因此对于大多数数据访问而言,我不需要SQL :)
有关字符串,字符串文字(常规和逐字),转义序列等的更多信息,请参阅有关该主题的文章 。
@"Try
this!"
在标志:)会做你想要的。
您可以考虑对跨多行的字符串使用@属性。 请参阅此链接以获取有关用法的更多详细信息。
sql = @"SELECT *
FROM HYT_User_Vehicle_Group_Assoc
INNER JOIN HYT_Vehicle_Group ON HYT_Vehicle_Group.Vehicle_Group_No = HYT_User_Vehicle_Group_Assoc.Vehicle_Group_No";
参见http://msdn.microsoft.com/zh-cn/library/aa691090(v=vs.71).aspx
逐字字符串文字。
@"Here is my
multiline verbatim string"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.