Päť najdôležitejších zmien z VB 6 na VB.NET

01

z 08

Päť najdôležitejších zmien medzi VB 6 a VB.NET

Päť najdôležitejších zmien

Visual Basic 1.0 bol hlavným programom zemetrasenia. Pred verziou VB1 ste na vytváranie aplikácií Windows museli používať C, C ++ alebo nejaké iné hrozné vývojové prostredie. Programátori doslova trávili týždne len kreslením okien na obrazovkách s vyberavým, podrobným a ťažko laditeľným kódom. (To isté môžete urobiť pretiahnutím formulára z panela nástrojov za pár sekúnd.) VB1 bol hit a gaziliony programátorov ho okamžite začali používať.

Aby však kúzlo nastalo, spoločnosť Microsoft urobila niekoľko významných kompromisov v oblasti architektúry. Najmä preto, že VB1 vytvoril formuláre a ovládacie prvky, neumožnil programátorovi prístup k kódu, ktorý to urobil. Buď necháte VB vytvoriť všetko, alebo ste použili C ++.

VB 2 až 6 udržiavali rovnakú architektúru. Microsoft urobil niektoré veľmi chytré aktualizácie, ktoré poskytli programátorom oveľa väčšiu kontrolu, ale v konečnej analýze programátori stále nemohli integrovať svoj kód s kódom VB. Bola to čierna skrinka - a nie dobrá metóda OOP. Ďalším spôsobom, ako to povedať, bolo to, že programátor nemal prístup k vnútorným „objektom“ VB a ďalším spôsobom, ako povedať, bolo to, že VB6 ešte nebol úplne „objektovo orientovaný“.

instagram viewer

02

z 08

VB 6 - Padanie za technologickou krivkou

Medzitým sa začali objavovať Java, Python a mnoho ďalších programovacích jazykov, ktoré boli objektovo orientované. Program Visual Basic sa dostával preč - veľký čas! Toto je situácia, ktorú spoločnosť Microsoft netoleruje... a rozhodli sa problém vyriešiť raz a navždy. Riešením je .NET.

Ale aby urobil veci, ktoré musí spoločnosť .NET urobiť, Microsoft sa rozhodol, že musia „narušiť kompatibilitu“. To znamená, že programy jazyka Visual Basic boli (s veľmi malými výnimkami) „kompatibilné smerom nahor“ od VB1 až po VB6. Program napísaný v tejto prvej verzii VB by sa stále kompiloval a spustil v nasledujúcej verzii. Ale s VB.NET, Microsoft zistil, že jednoducho nemohli urobiť jazyk úplne OOP a udržiavať kompatibilný vzostupne.

Akonáhle urobili toto zásadné rozhodnutie, protipovodňové brány sa otvorili na desať rokov nahromadených zmien v zozname želaní a VŠETCI z nich išli do novej siete VB.NET. Ako sa hovorí v Británii: „Za cent, za libru.“

Bez ďalších prieťahov, tu je môj veľmi osobný zoznam piatich najlepších zmien z VB6 na VB.NET v opačnom poradí.

Wellllll... len jedno ďalšie oneskorenie. Keďže prechádzate z VB6, kde je pole deklarované ako Dim myArray (5) 6 prvkov, Máme ich šesť. Je to len vhodné ...

(Valec bubna, prosím ...)

03

z 08

Cena (5) - Zmeny v syntaxi typu C.

„Cena (5)“, naša 6. miesto cena je určená pre skupiny C groupies: Zmeny syntaxe typu C!

Teraz môžete namiesto a = a + 1 kódovať znamienko + = 1, čím ušetríte TROJE CELÉ KLÁVESY!

Programátori sveta, raduj sa! VB bola zvýšená na úroveň C a celá nová generácia, ktorá sa snaží naučiť VB, sa trochu priblíži k masovému zmätku, ktorému sú vystavení študenti C ++.

Ale počkaj! Je toho viac!

VB.NET teraz obsahuje „skratovú logiku“, ktorá roky zavádzala jemné chyby do kódu C ++, aby sa ušetrili cenné nano-sekundy času procesora. Logika skratu vyhodnocuje viacnásobné podmienky v logickom príkaze iba v prípade potreby. Napríklad:

Dim R As Boolean
R = funkcia 1 () a funkcia 2 ()

Vo VB6 sa vyhodnocujú obe funkcie, či to potrebujú alebo nie. V prípade VB.NET, ak je Function1 () nepravdivý, Function2 () sa ignoruje, pretože "R" nemôže byť true. Ale čo keď sa globálna premenná zmení vo funkcii2 () - len náhodou (programátori C ++ povedali: „by zlé programovanie “.) Prečo môj kód vytvára nesprávnu odpoveď niekedy, keď je preložený do VB.NET? To by mohlo byť ono!

pre vyskúšaťing ťažšie, bude VB.NET úlovok trocha šťastia a konečne získať uznanie za „výnimočné“ spracovanie chýb.

VB6 mal posledné pozastavenie GoTo: „On Error GoTo“. Dokonca aj musím pripustiť, že štruktúrované zaobchádzanie s výnimkami v štýle C ++ „Try-Catch-Nakoniec“ je obrovské zlepšenie, nielen polovičné veľké zlepšenie.

Čo hovoríte, že „On Error GoTo“ je stále vo VB.NET? Wellll... Snažíme sa o tom príliš veľa nehovoriť.

04

z 08

5. miesto - Rôzne zmeny príkazu

5. miesto výber je skupinové ocenenie: Rôzne zmeny príkazu! Musia sa o toto ocenenie podeliť a je ich jeden milión. Microsoft šetril už desať rokov a skutočne sa uvoľnil.

VB.NET už nepodporuje funkcie VarPtr, ObjPtr a StrPtr, ktoré načítali adresu premenných v pamäti. A nepodporuje VB6 LSet, ktorý bol použitý na konverziu jedného typu definovaného používateľom na iný. (Nesmie sa zamieňať s VB6 LSet, ktorý robí niečo úplne iné - pozri nižšie.)

Ponúkame tiež fond adieu na Let, Is Missing, DefBool, DefByte, DefLng, DefCur, DefSng, DefDbl, DefDec, DefDate, DefStr, DefObj, DefVar a (môj osobný obľúbený!) GoSub.

Kruh sa zmenil na GDI + DrawEllipse. To isté platí pre Line to DrawLine. Vo výpočte teraz máme Atana namiesto Atna, Sign ide pre Sgn a Sqrt vyhovuje pre veľkú hru namiesto Sqr.

Pri spracovaní reťazcov sú stále k dispozícii, ak odkazujete na kompatibilitu so spoločnosťou Microsoft namespace, máme PadRight pre LSet VB6 (opäť úplne iný ako LSet VB6) a PadLeft pre RSet. (Existujú tri stlačenia klávesov, ktoré sme uložili pomocou znaku „+ =“!)

A samozrejme, pretože teraz sme OOP, neznepokojujte sa, ak vo VB.NET nie sú splnené sady vlastností, prenájom nehnuteľností a získanie majetku, stavíte sa!

Nakoniec ladenie. Tlač sa zmení na Ladiť. Napíšte alebo ladite. WriteLine. Aj napriek tomu všetko tlačia len pitomci.

Toto sa ani nedotýka všetkých NOVÝCH príkazov vo VB.NET, ale musíme niekde zastaviť tento nezmysel.

05

z 08

4. miesto - zmeny volania procedúr

v 4. miesto, máme Zmeny volania procedúr!

Toto je ocenenie „dobrota, čistota a zdravá cnosť“ a predstavuje frakciu tvrdých kampaní frakcie „už žiadne nedbalé kódy“.

Ak je premenná parametra procedúry vo VB6 vnútorným typom, potom je to ByRef, pokiaľ ste ju nezakódovali ByVal explicitne, ale ak to nie je kódované ByRef alebo ByVal a nejde o vnútornú premennú, potom je to ByVal... Mám to?

Vo VB.NET je to ByVal, pokiaľ nie je kódované ByRef.

Predvolene ByVal VB.NET tiež zabraňuje neúmyselnému šíreniu zmien premenných parametrov v procedúrach do volacieho kódu - kľúčovej súčasti dobrého programovania OOP.

Microsoft tiež „preťažuje“ VB.NET zmenou požiadaviek na zátvorky vo volaní procedúr.

Vo VB6 sú zátvorky okolo argumentov pri volaní funkcií, ale nie pri volaní podprogramu, keď nepoužívajú volanie, ale sú povinné, keď sa používa volanie.

Vo VB.NET sa zátvorky vždy vyžadujú v zozname neprázdnych argumentov.

06

z 08

3. miesto - polia sú založené na 0 namiesto 1 na základe

Bronzová cena - 3. miesto, ide Polia sú založené na 0 a nie na 1!

Je to len jedna zmena syntaxe, ale táto zmena získa status „medailového pódia“, pretože sa hlasuje, „s najväčšou pravdepodobnosťou to zničí logiku programu“. Pamätajte, 3. miesto JE „Cena (2)“ v našom zozname. Ak máte vo vašom programe VB6 čítače a polia (a koľko ich nie je), tento vám MESS MESS UP.

Ľudia sa už desať rokov pýtajú: „Čo fajčilo Microsoft, keď to takto robili?“ A desať rokov programátori druh všeobecne ignoroval skutočnosť, že existoval prvok myArray (0), ktorý práve zaberal priestor a nezvykol si na čokoľvek... Okrem tých programátorov, ktorí ho používajú DID a ich programy vyzerali, myslím tým len „čudné“.

Pre I = 1 až 5
MyArray (I - 1) = Čokoľvek
Ďalšie

Myslím, nAOZAJ! ...

07

z 08

2. miesto - typ údajov variantu

Strieborná medaila 2. miesto sa vzdáva česť starému kamarátovi, ktorý bol vrhnutý do kúska programovania s absolvovaním VB6! Nehovorím o ničom inom ako Typ údajov variantu.

Pravdepodobne žiadna iná vlastnosť jazyka Visual Basic „notNet“ lepšie nepredstavuje filozofiu „rýchla, lacná a voľná“. Tento obrázok prenasledoval VB až do zavedenia VB.NET. Som dosť starý na to, aby som si spomenul na zavedenie jazyka Visual Basic 3.0 od spoločnosti Microsoft: „Och, Wow! Pozri sa sem! S novým vylepšeným typom údajov Variant nemusíte deklarovať premenné ani nič. Môžete si ich jednoducho vymyslieť a kódovať. “

Microsoft zmenil svoju melódiu dosť rýchlo na ten jeden a odporúčal deklarovať premenné pomocou špecifický dátový typ takmer okamžite, takže mnohí z nás sa pýtajú: „Ak nemôžete použiť varianty, prečo máte ich? “

Ale zatiaľ čo sme v téme dátových typov, mal by som spomenúť, že veľa druhov údajov sa zmenilo okrem toho, že sa Variant preniesol na mokrý cement. Je tu nový datový typ Char a dlhý datový typ, ktorý je 64 bitov. Desatinné číslo je úplne odlišné. Krátke a celé číslo už nie sú rovnaké.

A existuje nový dátový typ „Object“, ktorý môže byť čokoľvek. Počul som, že niekto povedal: "Syn variantu"?

08

z 08

1. miesto - VB.NET je konečne úplne objektovo orientované

Konečne! Zlatá medaila, 1. miesto, najvyššie ocenenie, ktoré môžem udeliť ...

TA DAH!

VB.NET je konečne úplne objektovo orientovaný!

Teraz, keď idete na pláž, programátori C ++ nebudú kopať piesok do vašej tváre a ukradnúť (priateľka / priateľ - vyberte si). A môžete stále kódujú kompletný skúšobný zostatok hlavnej knihy, zatiaľ čo sa snažia zistiť, ktoré súbory hlavičiek majú obsahovať.

Prvýkrát môžete kódovať čo najbližšie k čipu a získať prístup ku všetkým vnútorným funkciám vášho srdca bez museli uchýliť sa k týmto nepríjemným hovorom Win32 API. Máte dedičstvo, preťaženie funkcií, asynchrónne viacvláknové spracovanie, zber odpadu a všetko je objekt. Môže sa život zlepšiť?

Počul som, že niekto hovorí, že C ++ má viacnásobné dedičstvo a .NET stále nie?

Vypáliť heretika!

instagram story viewer