5

在 CI 中使用"1st line 1\n2nd line"换行符,但是 VB 呢?我知道"1st line" & VbCrLf & "2nd line"但它太冗长了,VB 中换行符的转义字符是什么?

我要打印

1st line
2nd line

我尝试使用\n,但无论我运行编译器多少次,它总是输出这个

1st line\n2nd line

有任何想法吗?

4

5 回答 5

8

你应该使用Environment.NewLine. 在 Windows 上计算为 CR+LF,在 Unix 系统上计算为 LF。

VB 中没有 CR 或 LF 字符的转义序列。这就是为什么"\n"按字面意思对待的原因。所以,Environment.NewLine是你的家伙。

于 2012-12-28T21:47:21.620 回答
3

正如其他人所说,您应该使用环境敏感Environment.NewLine属性。 vbCrLf是一个旧的 VB6 常量,它在 VB.NET 中提供用于向后兼容。因此,例如,您应该使用:

"1st line" & Environment.NewLine & "2nd line"

如果当你有很多行时这太罗嗦了,你可以使用这个StringBuilder类,而不是:

Dim builder As New StringBuilder()
builder.AppendLine("line 1")
builder.AppendLine("line 2")
builder.AppendLine("line 3")
builder.AppendLine("line 4")

如果您特别需要 CR 和 LF 字符,则应该使用ControlChars类中的常量而不是旧vbCrLf常量。

于 2012-12-28T21:59:01.017 回答
2

您说的是 VB,但使用 VB.NET 进行了标记。你的问题也有点奇怪。不同的操作系统实际上需要不同的换行符。你想要的是Environment.NewLine. 无论 .NET 框架在什么操作系统上运行,这都会为您提供正确的换行符。

于 2012-12-28T21:46:49.873 回答
2

我仍然使用老式chr(13) 的例如:

"Hello" & chr(13) & "World"

结果是:

Hello
World

编辑:就像Dave Doknjas所说,在你的情况下,它将是chr(10)为了喂线。

于 2017-07-26T22:32:54.880 回答
0

如果您正在寻找内联转义来完成诸如在 String.Format 中包含换行符之类的事情,您可以包含一个管道或类似的东西,然后在字符串的末尾替换它。

String.Format("Batch: {0} | ProductNumber: {1} | Formula: {2}", dr.Item("BatchNumber"), dr.Item("PartNum"), dr.Item("Formula") ).Replace("|", Environment.NewLine)

于 2020-08-27T18:58:50.620 回答