2010-07-08 37 views
1

有谁知道是否有任何特定的原因,VB.NET构造语法不一致?例如:VB.NET语法不一致的原因?

If 
... 
End If 

Select 
... 
End Select 

你会认为这将是for... end forwhile... end while ...而是我们有:

While 
... 
Wend 

For 
... 
Next 

这轻度沮丧我一会儿,我也是刚刚才知道是否有背后的意识决定。还是仅仅因为后向兼容性问题而导致设计决策不能再被改变呢?

+0

我以为是While ... End While或Do While ... Loop。通过For .. Next语法,它可能就是传统上基本的那种方式。 – 2010-07-08 20:42:29

+0

@Chris:是的,它自VB 7以来就是'End While'。然而'Do ... Loop'构造是不一致的另一个例子。为了保持一致,将会是'Loop ... End Loop',但是'End Loop Until ...'在语义上没有意义。 – Guffa 2010-07-08 20:49:11

+0

它是有道理的,因为它可以'做虽然...循环'或'做...循环虽然' – 2010-07-08 21:17:52

回答

4

自从VB 7以来,While构造实际上已经变得更加一致了。现在是End While而不是Wend

不一致的Next的原因大多是历史性的。从40多年前的第一个版本开始,BASIC就是这样。

+0

酷!这是否意味着Wend已被弃用? – froadie 2010-07-08 20:47:42

+2

@froadie:不,如果它被弃用,它仍然有效,它只是被替换。尽管如此,编译器仍然会对其进行重新识别,如果您尝试使用它,您会收到一条特定的错误消息,指出它已被替换。 – Guffa 2010-07-08 20:51:53

1

你可以使用while/end while。

对于/下一个对我有意义,但这可能是因为我习惯了。

这些语言术语多年来一直在Basic的几个老版本中使用。我认为这就是MS选择使用它们的原因。

3

在旧版本中,Next关键字需要变量名称(例如Next n)。

End For n没有意义。

+0

我仍然把变量,如果我嵌套循环。 – dwidel 2011-04-26 22:32:10

相关问题