IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

Visual Basic vs. C # - Rozdiely a prechod medzi nimi

Čas od času sa na fóre objaví dotaz na tému C# (číta sa sie Sarp) × Visual Basic (skrátene VB), ich rozdiely, prednosti a podobne. Pretože poznám oba jazyky, pokúsim sa vám vysvetliť rozdiely medzi nimi a následný prechod medzi nimi.

Visual Basic .NET vs C# .NET - Online kurzy programovania VB.NET - Najväčší slovenský tutorial

Histórie

Najprv je potrebné sa pozrieť do histórie oboch jazykov. Visual Basic je tu s nami od roku 1991. V roku 2002 však prišla zmena, Microsoft Visual Basic .NET (.NET, čítame dotNET) teraz beží pod .net, rovnako ako zbrusu nový jazyk C #. Starý Visual Basic však nebol totožný s dnešným a preto množstvu vývojárov prechod na dnešné Visual Basic trval dlho a občas sa vykľuje jedinec, čo neprešiel dodnes.

Oproti Visual Basicu .NET C# raketovo vyrástol a VB.NET prekonal skoro vo všetkom. Dnes niektorí začínajúci vývojári o Visual Basicu nemajú ani tucha alebo za Visual Basic považujú stále ten starý.

Čo možno v týchto jazykoch programovať? Snáď úplne všetko. Klasické desktopové aplikácie, ako konzolové tak okenné a to hneď pomocou dvoch frameworkov (Windows Forms a Windows Presentation Foundation), serverové aplikácie (ASP.NET), moderné Windows Store aplikácie, mobilné Windows Phone a malé robotika (.NET micro Framework).

Syntaxe

Zdrojový kód je v C# značne kratšie, namiesto End If je v C# proste len zložená zátvorka}. Každý príkaz končí; čim je ľahké vopchať viac príkazov na riadok. Vo Visual Basicu ale u koncových značiek vždy viete čo tu končí, riadky sa zakončujú Enterom a ak chcete viac príkazov na jeden riadok, tak príkazy môžete oddeliť dvojbodkou:. Vo Visual Basicu sa ku všetkému možnému používajú kľúčové slová. Rozdiel je napríklad v dedičnosti a implementáciu rozhrania. Vo Visual Basicu bude kód nasledujúce:

Class MojeTrida
    Inherits MojeDruhaTrida
    Implements MojeRozhrani
End Class

VC # tento kód bude značne kratšia, ale ak nedodržujte konvencie (rozhranie začína veľkým i) neviete čo dedí a čo implementujete, či dokonca môžete implementovať 2 rozhrania a to je ešte len guláš.

class MojeTrida : MojeDruhaTrida, MojeRozhrani {

}

Knižnica Microsoft.Visu­alBasic

Vo Visual Basicu je vo východiskovom stave importovaná referencie na knižnicu Microsoft.Visu­alBasic. Vďaka tejto knižnici môžete používať niektoré funkcie, ktoré v C# v predvolenom stave jednoducho nie sú. Dobrým príkladom je opak k MessageBox.Show (), pre získavanie hodnoty od užívateľa môžete použiť funkciu InputBox, ktorá zobrazí dialógové okno s textovým poľom, čiže máte ušetrené celkom dosť práce.

InputBox vo Visual Basicu - Online kurzy programovania VB.NET - Najväčší slovenský tutorial

Táto knižnica má funkciu Beep (), môžete používateľa bombardovať pípaním. Alebo jednoducho cinkať pri udalosti, ktorá bežne necinká.

Knižnica obsahuje odbor názvu My v ktorom sú niektoré funkcie implementované jednoduchšie, napr. Odosielanie a sťahovanie súborov na / z internetu je vďaka My.Computer.Network veľmi jednoduché.

Pre C# isty mám dobrú správu, ak po tejto knižnici túžite tak si ju môžete pridať do referencií a budete mať tieto funkcie aj v C #.

Rozdiely v syntaxi

Aj napriek tomu, že sú tieto jazyky takmer totožné, nájdu sa rozdiely, ktoré sú v jednom z jazykov tak nejako nevyriešené.

Dosť zásadný rozdiel je aj v zápise cykle For, zatiaľ čo Visual Basic ho má veľmi jednoduchý, u C# si s tým môžete viac vyhrať. V skutočnosti je však možné v oboch jazykoch docieliť viacmenej rovnakého efektu.

Vo Visual Basicu k tomu dôjdeme jednoducho, určíme premennú, povieme kde začať a kde skončiť a tým to pre nás hasne.

For i = 0 To 4

UC # to je mierne zložitejšie, okrem toho že tu premennú musíme sami aj deklarovať, musíme určiť podmienku a potom aj zabezpečiť samotnú inkrementácia.

for (int i = 0; i < 5; i++)

Čo keď ale budeme chcieť vo Visual Basicu skákať nie o 1 ale napríklad o tri alebo dokonca o zápornej počty? Aj Visual Basic s týmto počíta, do definície pridáme kľúčové slovo Step s hodnotou čo sa má k tomu zakaždým pripočítať.

For i = 0 To -10 Step -2

Visual Basic má kľúčové slovo Handles, ktoré sa píše na koniec definície metódy, umožňuje odchytiť nejakej udalosti (oddeľujú sa čiarkou), aj bez nutnosti zbytočne zdĺhavého AddHandler. C# pre toto nemá žiadnu alternatívu. Na nasledujúcej ukážke je vidieť použitie kľúčového slova Handles a metódy fukce UploadFile, ktorá sídli v knižnici MicrosoftVisu­alBasic.

Private WithEvents tmr As New Timer()

Private Sub SendData() Handles tmr.Tick, btnSend.Click
    My.Computer.Network.UploadFile("C:\data.txt", "ftp://mujserver.com/data.txt", "root", "*****")
End Sub

Visual Basic vie znova alokovať pole pomocou kľúčového slova riedime, ak pole potrebujete vytvoriť znovu (napr. Ste zistili že ho potrebujte väčší - dosť častý jav) tak použijete práve tento príkaz. C# pre neho ale nemá žiadnu alternatívu.

Visual Basic má operátor ^, ktorý slúži na umocňovanie premenných na ntou.

Dim c As Integer = 3 ^ 2

Výsledkom uloženým vc bude 3 na 2 (čiže 9).

C# má operátormi pre inkrementácia a dekrementace, týchto operátorov vo VB.NET nenájdete.

C# má oproti Visual Basicu viacriadkové komentáre.

Toto boli príklady rozdielov, kde riešenie nie je až zas tak jednoznačné a ľahké. Všetky možno nejako obísť. Pri výbere jazyka by toto nemalo hrať žiadnu úlohu.

Prechod medzi jazykmi

Prechod medzi jazykmi je veľmi jednoduchý, v zásade ide len o tom zvyknúť si na syntax a potom to ide samo. Rozdielov je tak málo, že je v bežnom použití ani nespoznáte.

Automatický prevod kódu robotom

Existuje jedna služba, ktorá umožňuje prevod zdrojového kódu práve medzi jazykmi C# a Visual Basic. Je na webe developerfussion úplne zadarmo. Nefunguje dokonale (niektoré perličky nezvládol previesť), ale pre väčšinu úloh je plne dostačujúca. Neodporúčam ju pre prevod celého projektu, ale napríklad keď chcete previesť ukážku zdrojového kódu, hodí sa skvele.

Ručný prevod kódu

Ručné prevod kódu je samozrejme možný, ale je dobré sa zamyslieť, či nie je zbytočný. Niekedy je lepšie kód dopísať v pre vás sekundárnom jazyku než sa zaoberať prevodom, čo je iba čas navyše.

Rada na záver

Pretože syntax Visual Basicu stavia na kľúčových slovách, nie je úplne na škodu s ním pri výučbe začať. Prechod na C #, po ktorom je oveľa väčší dopyt, je potom veľmi jednoduchý. Ak už viete C #, prechod na Visual Basic je zbytočný, kód vám príde zdĺhavý a navyše po Visual Basicu nie je až zas tak vysoký dopyt ako po C #. Ak už viete nejaký jazyk a nepotrpíte si na Basic like syntax, tak Visual Basic určite nevoľte. Ak sa rozhodujte pre C #, tak verte, že nemáte čo stratiť.


 

Všetky články v sekcii
Online kurzy programovania VB.NET - Najväčší {C_A} tutorial
Článok pre vás napísal Michal Žůrek - misaz
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Autor se věnuje tvorbě aplikací pro počítače, mobilní telefony, mikroprocesory a tvorbě webových stránek a webových aplikací. Nejraději programuje ve Visual Basicu a TypeScript. Ovládá HTML, CSS, JavaScript, TypeScript, C# a Visual Basic.
Aktivity