在多行字符串中插入代码和避免下划线
【IT168 技术文档】 当我从FoxPro转到使用VB.Net的时候,我最思念的事情之一就是在FoxPro中能够很容易地在编辑框中输入一束文字(多行字符串)和嵌入的代码(合并的文本)。对此,ForPro 有一个关键字“TEXT...ENDTEXT ”,我过去一直使用它。在VB中由于为了代码的可读性你不得不使用大量的下划线来连接文字串,结果就变得非常的糟糕。
"with formatting" & vbCrLf & _
"and stuff" & vbCrLf & _
"look ma, underscores" & vbCrLf & _
" tabs too"
MsgBox(oldWay)
不再多说。使用带XML 文字支持的Visual Basic 9的版本,我们现在可以很容易的直接写入一束文字到编辑框中: this is a string
with formatting
and stuff
look ma, no underscores!!!
tabs too
</string>
MsgBox(newWay.Value)
文本格式也是被保护的。所有你需要做的就是得到可扩展元素,也就是字符串文字的值。现在你就可以看出,这比我们过去所使用的要更清楚。如果你依然喜欢用默认的微红色来看你的字符串文字,你可以在"工具-->选项-->环境-->文字和字体"里很容易地变更VB XML 文字的颜色设置,接着选择“VB XML 文本” 再定置颜色到RGB(163,21,21)。这里是另外一个例子,一些SQL查询语句(现在使用的是默认的微红色): SELECT Customers.*, Orders.OrderDate
FROM Customers
INNER JOIN Orders ON Orders.CustomerID = Customers.CustomerID
WHERE Customers.CustomerID = @CustomerID
</query>
Dim cmd As New SqlCommand(query.Value)
cmd.Parameters.AddWithValue("@CustomerID", id)
现在是我们可以在哪里找到乐趣。你也可以使用“<%= 语句%>”插入表达式到这些文字里面.这就意味着有可以更清晰地做任何类型的文字合并,而不是单单进行代码和字符串的难看的串联,尤其是当文字长度增加的时候。下面是一些简单的例子: This is a simple text merge example:
Hello, <%= Environment.UserName %>
</string>
MsgBox(simple.Value)
Dim controls = <string>
There are the following controls on this form:
<%= From item In Me.Controls Select item.ToString & vbCrLf %></string>
MsgBox(controls.Value)
Dim oldWay = "this is a string" & vbCrLf & _
Dim newWay = <string>
Dim query = <query>
Dim simple = <string>