Six*_*nse 1 c# vb.net c#-to-vb.net vb.net-to-c# vb.net-2010
这在VB.Net中工作
Dim sSQL As String
sSQL = <sql>MySQLQueryHere</sql>.Value
Run Code Online (Sandbox Code Playgroud)
但是,这在C#中不起作用
string sSQL = "";
sSQL = <sql>MySQLQueryHere</sql>.Value;
Run Code Online (Sandbox Code Playgroud)
以下部分显示了构建后的错误。
Run Code Online (Sandbox Code Playgroud)sSQL = <sql>MySQLQueryHere</sql>.Value;
关于我在做什么错的任何建议吗?
那是XML文字,C#不支持它们。在编写SQL查询时,它们经常在VB中使用,以使文本可以分成多行,而不必用大量的引号和“&”符号使内容模糊。VB不再需要它们,因为VB 2015和更高版本支持多行字符串文字。C#还支持多行字符串文字,而且我不确定它的使用时间更长,尽管我不确定哪个版本。
这是使用XML文字的VB代码示例:
Dim sql = <sql>
SELECT *
FROM MyTable
</sql>
Dim query = sql.Value 'This is a String
Run Code Online (Sandbox Code Playgroud)
这是使用多行字符串文字的等效VB:
Dim query = "SELECT *
FROM MyTable"
Run Code Online (Sandbox Code Playgroud)
这是等效的C#代码:
var query = @"SELECT *
FROM MyTable";
Run Code Online (Sandbox Code Playgroud)
在C#代码中,请注意,必须使用逐字字符串文字才能将其分布在多行上。逐字字符串文字是一个前缀为的@
字符,指示引号之间的每个字符应按字面意义使用。这些通常用于文件和文件夹路径,因此您无需转义所有斜杠。这确实意味着您无法在文本中转义任何内容。
还应注意,在所有三种情况下,每行开头的空白也将作为文本的一部分包括在内。对于SQL代码来说,这没什么大不了的,但是有时会出现问题,在这种情况下,您必须将所有文本推到编辑器的左侧。这看起来不太好,但这是必要的权衡。
我还应该指出,XML文字代码并不严格等同于其他代码。严格来说,第一个代码段必须像这样等效:
Dim sql = <sql>SELECT *
FROM MyTable</sql>
Dim query = sql.Value 'This is a String
Run Code Online (Sandbox Code Playgroud)
但是我认为,XML文字在通常以XML编写时更容易阅读,但是没有理由在多行字符串文字中包含多余的空格和换行符。同样,对于SQL代码而言,这无关紧要,但是当空格很重要时,应该考虑它。
归档时间: |
|
查看次数: |
118 次 |
最近记录: |