gpt4 book ai didi

vb.net - 为什么 VB.Net 行继续符必须是在线的最后一个

转载 作者:行者123 更新时间:2023-12-04 22:51:51 26 4
gpt4 key购买 nike

为什么行继续符 (_) 必须是行中的最后一个?是否有技术原因或这是一个常见的微软“功能”?

在其他基本方言中,您可以在其后添加注释,但在 VB.net 中不能,所以我很好奇为什么 Microsoft 决定不允许对这些行进行注释。

最佳答案

它必须被编译到编译器中,因为反汇编的代码看起来没有什么不同。看看下面的代码:

    Dim nameVar As String = "John"
MsgBox("Hello " & nameVar & _
". How are you?")

MSIL 是这样看的:

IL_0000:没有
IL_0001:ldstr“约翰”
IL_0006:STLoc.1
IL_0007: ldstr "你好 "
IL_000c:ldloc.1
IL_000d:ldstr“。你好吗\?”
IL_0012:调用字符串 [mscorlib]System.String::Concat(string,
字符串,
字符串)

现在没有换行符的相同代码:
        Dim nameVar As String = "John"
MsgBox("Hello " & nameVar & ". How are you?")

MSIL 是相同的:

IL_0000:没有
IL_0001:ldstr“约翰”
IL_0006:STLoc.1
IL_0007: ldstr "你好 "
IL_000c:ldloc.1
IL_000d:ldstr“。你好吗\?”
IL_0012:调用字符串 [mscorlib]System.String::Concat(string,
字符串,
字符串)

所以这是编译器的一个“特性”。为什么要这样做?在解释有关 VB.NET 的任何内容时,您需要回顾经典的 Visual Basic。许多原则和程序只是为了舒适度和吸引 VB6 和更早的程序员而继承到 VB.NET。那么为什么在 VB.NET(2008 年及之前)中采用这种方式可能是因为在 VB6 及更早版本中采用这种方式。我敢猜测它是在 VB6 中以这种方式完成的,因为在编译代码之前存在 IDE 限制,但我们永远不会知道这一点,除非来自原始 VB6 Microsoft 团队的人在其背后添加了他们的推理。

希望这可以帮助!

关于vb.net - 为什么 VB.Net 行继续符必须是在线的最后一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3748174/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com