繁体   English   中英

如何在C#中开始“字符串块”格式?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM