Fermer

février 27, 2019

Conversion de Visual Basic en C #


Suivez John Browne dans une brève histoire de Visual Basic et apprenez à convertir facilement le code VB en C #.

Le langage de programmation BASIC remonte à 1964, lorsque les professeurs John Kemeny et Thomas Kurtz de Dartmouth décidèrent de créer un très, bien, langage de programmation «de base» pour apprendre aux étudiants comment programmer. À l’époque, les langues existantes étaient soit de niveau extrêmement bas, soit trop moche comme le COBOL.

En 2014, Dartmouth a célébré le 50e anniversaire de la création de BASIC:

  • Si BASIC était un être humain, ses langues les enfants seraient d'âge moyen.
  • Si BASIC était un président américain, ce serait dans la tombe de Lyndon Johnson.
  • Si BASIC était une chanson pop, ce serait "Je veux te tenir la main".

BASIC is OLD

Mais c'était populaire. Tous ces petits ordinateurs domestiques mignons, tels que les ordinateurs Apple II et Commodore 64 – et même le PC IBM original – sont livrés avec BASIC. Et voilà que les masses ont pris le BASIC comme mon Border Collie prend les restes. Et après que tous ces sbires aient appris à programmer en écrivant des jeux stupides, beaucoup ont tourné leur attention vers de graves problèmes commerciaux et ont écrit plus de code.

Puis, dans les années 80, Microsoft Windows est apparu avec une interface graphique, des événements de souris et des graphiques bitmap. Mais écrire du code Windows était vraiment difficile. C'était comme un langage d'assemblage mais plus mesquin. Tout était un pointeur, vous aviez une pompe à messages (peu importe ce que c'était), vous deviez gérer votre mémoire et la documentation se lisait comme du sanscrit. Ainsi, lorsque Visual Basic est arrivé sur la scène en 1991, tous ces développeurs BASIC ont sauté dessus, à l'instar de mon Border Collie sur une côte principale très rare.

Plus de numéros de ligne, plus d'instructions PRINT à déboguer, conception de formulaire simple … it c'était le paradis. Les boîtes ont volé des étagères. Un immense écosystème de bibliothèques et d'outils a vu le jour. Les personnes qui n'avaient jamais écrit de programme ont eu recours aux développeurs de logiciels du jour au lendemain.

Et nous savons tous ce qui s'est passé ensuite. Avec la sortie de .NET, Microsoft a transformé la VB bien-aimée en VB.NET, qui ressemblait de manière alarmante à un «vrai» langage de programmation. En fait, il ressemblait étrangement au langage C # créé dans le seul but de créer des applications. NET.

Au revoir Visual Basic. Bonjour VB.NET.

En réalité, les deux langages (VB.NET et C #) ne sont PAS interchangeables. Ils ont tous les deux accès à la totalité du framework .NET et utilisent tous deux le même compilateur et le même IL, mais certaines différences syntaxiques persistent. Assez de gens pensent que VB.NET est encore plus accessible et «lisible par l'homme» que C # pour le garder en vie. Mais les temps changent. ”

Microsoft a défini la feuille de route pour tous ses langages .NET. C # est désormais au volant et VB.NET à l’arrière. C # sera pour toujours un langage de première classe et VB sera le coureur de la portée. Les améliorations se produiront d’abord en C #, puis plus tard, voire pas du tout, intégrées à VB. Alors que Microsoft se concentre désormais du .NET Framework sur le .NET Core, VB sera implémenté après le déploiement de la prise en charge de C #. Et ainsi de suite.

VB.NET ou C #? Vous choisissez.

Ce qui m'amène à cet outil cool de mes copains de l'équipe Telerik. Vous pouvez coller votre code VB.NET et boum! Il est converti en C #. (Ok, vous pouvez aussi aller dans l'autre sens, mais qui le ferait vraiment?) Je pense que cela pourrait être très utile pour les gens qui sont habitués à VB et qui veulent voir en quoi la même fonction ou la même procédure seraient différentes en C #. (indice: ce ne sera plus un sous-bout…)

Un rapide contrôle de ma part montre ce petit extrait ici (C #):

 int  i  =   0 ; 
fgOrders .  RowsCount  =  modConnection .  rs .  RecordCount  +   +   1 ; 19659024] ( fgOrders .  RowsCount  ==   1 ) 
		 {
fgOrders .  FixedRows  =   0 ; 
		} 
		 sinon 
		 {
fgOrders .  FixedRows  =   1 ; 
		} 
i  =   1 ; 
		 alors que   (!  modConnection .  rs .  EOF ) [19659027] {
			 int  tempForEndVar  =  modConnection .  rs .  FieldsMetadata . [19459194]. 1 ; 
			 pour   ( int  j  =   0 ;  j  <=  tempForEndVar ;  j  ++ ) 
			 {
				 if   ( modConnection .  rs .  GetField .  j )  ! =   null ) 
				 {
fgOrders  [ i  j ] .  Valeur  =  Convertissez . . .  modConnection .  rs  [ j  ) ; 
				} 
			} 
modConnection .  rs .  MoveNext  () ; 
i  ++ ; 
		} 

Lorsque collé dans leur convertisseur, cela donne (VB.NET):

 Dim  i  As   Integer   =   0 
        fgOrders.RowsCount = modConnection.rs.RecordCount + 1

Si fgOrders.RowsCount = = 1 ensuite [19459]
            fgOrders.FixedRows = 0
Sinon
            fgOrders.FixedRows = 1
Fin Si

        i = 1

Alors que Pas modConnection.rs.EOF
             Dim tempForEndVar As Entier = modConnection.rs.FieldsMetadata.Count - 1

pour




Source link