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

“如何开始”;“字符串块”;C#格式?,c#,php,formatting,C#,Php,Formatting,我不得不在我的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背景,

我不得不在我的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+=

是的-在前导前面加上@来使用a:

请注意,这也删除了反斜杠转义-它真正有用的一个方面是用于正则表达式和Windows文件路径。要在逐字字符串文字中包含双引号,请将其加倍:

string text = "Jon says, ""Verbatim string literals."" And that's all.";
对于特别大的文本代码块,请注意,我可能会将它们放在单独的嵌入式资源中,或者使用ORM,这样我就不需要SQL来访问大多数数据:)

有关字符串、字符串文字(常规和逐字)、转义序列等的更多信息,请参阅my


符号:将按你想要的做。

你可以考虑使用@属性来跨越多行的字符串。参考链接以了解更多用法。

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"; 

逐字字符串文本

@"Here is my
multiline verbatim string"

@
不是一个符号(
&
);它是at符号。我认为,符号是
&
不是
@
无意义@是一个符号,很明显是一个蠕虫。哎呀
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"; 
@"Here is my
multiline verbatim string"