2010-07-08 3 views
1

Est-ce que quelqu'un sait s'il y a une raison particulière pour laquelle la syntaxe de construction de VB.NET n'est pas cohérente? Par exemple:Raisons de la syntaxe VB.NET incohérente?

If 
... 
End If 

Select 
... 
End Select 

vous serez d'accord qu'il serait for... end for, while... end while ... mais nous avons:

While 
... 
Wend 

For 
... 
Next 

Cela m'a légèrement frustré pendant un certain temps, et je ne me suis demandé s'il y avait une décision consciente derrière cela. Ou était-ce simplement une décision de conception initiale, pas si bien pensée, qui ne peut plus être modifiée en raison de problèmes de compatibilité ascendante?

+0

Je pensais que c'était pendant que ... End While ou Do While While ... Loop. Avec la syntaxe For .. Next, il se pourrait que ce soit comme ça traditionnellement avec basic. –

+0

@Chris: Oui, c'est 'End While' depuis VB 7. La construction' Do ... Loop' est cependant un autre exemple de l'inconsistance. Pour être cohérent, ce serait «Loop ... End Loop», mais «End Loop Until ...» n'a pas de signification sémantique. – Guffa

+0

Ca a du sens car ça peut être "Do While ... Loop" ou "Do ... Loop While" –

Répondre

4

La construction While est devenue plus cohérente depuis VB 7. Elle est maintenant End While au lieu de Wend.

La raison de l'incohérence Next est principalement historique. C'est comme ça dans BASIC depuis la première version, il y a plus de 40 ans.

+0

cool! cela signifie-t-il que Wend est obsolète? – froadie

+2

@froadie: Non, si elle était déconseillée, elle fonctionnerait toujours, elle est simplement remplacée. Le compilateur le reconnait quand même, et si vous essayez de l'utiliser vous obtenez un message d'erreur spécifique qu'il est remplacé. – Guffa

1

Vous pouvez utiliser while/end while. Car/next a du sens pour moi, mais c'est peut-être parce que je suis habitué.

Ces termes de langue ont été utilisés dans plusieurs anciennes versions de Basic pendant des années. Je suppose que c'est la raison pour laquelle MS a choisi de les utiliser.

3

Dans les anciennes versions, le mot-clé Next nécessitait un nom de variable (par exemple, Next n).

Il ne serait pas logique d'écrire End For n.

+0

Je mets toujours la variable si je suis en train d'imbriquer des boucles. – dwidel