Visual Basic va Visual Basic .NET-ni taqqoslash - Comparison of Visual Basic and Visual Basic .NET - Wikipedia

Visual Basic .NET tomonidan chiqarilgan Microsoft 2002 yilda asl nusxaning davomchisi sifatida Visual Basic kompyuter dasturlash tili. U amalga oshirildi .NET Framework 1.0. Asosiy yangi xususiyat edi boshqariladigan kod. Faqatgina Visual Basic bilan tanish bo'lgan dasturchilar yangi versiya bilan ishlashda yoki mavjud dasturlarni unga moslashtirishda qiyinchiliklarga duch kelishgan bo'lar edi.

Shubhasiz katta farqlar

Yangi platforma avvalgisiga deyarli o'xshamadi.[iqtibos kerak ] Dasturchilar o'zlarining Visual Basic manbalarini .NET maqsadiga qayta kompilyatsiya qilishni kutishgan bo'lsa-da, vaziyatning haqiqati shundaki, Visual Basic .NET nihoyatda boshqacha paradigma edi.[iqtibos kerak ]

Sintaksisning aniq farqlari bilan bir qatorda, Visual Basic .NET xuddi shunday funktsiyalarni ta'minlaydi C # (chunki ikkalasi ham kompilyatsiya qilishadi) MSIL, eng aniq farq Visual Basic .NET-ning ishiga befarqligi, Visual Basic-ning asl holatiga befarqligini saqlab qolish), bu ko'proq muammo C # Visual Basic .NET ishlab chiquvchilari bilan ishlashga harakat qilayotgan dasturchilar hamma narsadan ko'proq.

Asosiy sintaksis juda o'xshash bo'lib qolmoqda: shartlar, tsikllar, protseduralar, kichik tartiblar xuddi shu tarzda e'lon qilinadi va yoziladi (Visual Basic-ga qarang). Oldingi Visual Basic takrorlashlaridan Visual Basic .NET-ga ko'chirish haqiqatan ham mavjud kodning bir qismidir: har ikki dunyoda tajribaga ega dasturchilar yangi platformani eski mantiq bilan samarali nishonga olishlari kerak. Visual Basic .NET ishlab chiqaruvchisi Visual Basic-da ishlatilganidan ko'ra asosiy .NET turlaridan foydalanishni o'rganishi kerak.

Faqat Visual Basic bilan ishlagan dasturchi Visual Basic .NET-ga o'tish uchun tik o'rganish egri chizig'iga duch kelishi mumkin. Boshqa tilni yaxshi biladigan yoki .NET ish vaqti ta'sirida bo'lgan dasturchi bu ishni uddalay olishi kerak. Visual Basic .NET-ni Visual Basic 6.0 ning davomi sifatida emas, balki Visual Visual Basic-dan ilhomlangan yangi til deb o'ylash yaxshiroq bo'lar edi, bu VB.NET-ning .NET Framework bilan interfeysini ta'minlaydigan dasturchilarning ko'chishi uchun qo'shimcha qiyinchilik tug'dirdi. ga asoslangan edi Komponent ob'ekti modeli (MAQOMOTI).[iqtibos kerak ]

Batafsil taqqoslash

Ishlab chiquvchilar e'tiborga olishlari kerak bo'lgan bir nechta darhol o'zgarishlar mavjud:

C ga o'xshash sintaksis

Visual Basic .NET uchun +=, -=, *=, /=, \=, ^=va &= quyidagicha uzunroq chiziqlar:

o'zgaruvchan = o'zgaruvchan + 1

endi quyidagicha yozilishi mumkin:

o'zgaruvchan += 1

Biroq, o'sish va kamaytirish operatorlari emas qo'llab-quvvatlanadi.

Qisqa tutashgan mantiq

Visual Basic-ning oldingi takrorlanishlarida, shartni baholashdan oldin shart natijasi aniqlanishi mumkin bo'lsa ham, shartdagi barcha gaplar baholangan bo'lar edi. Masalan:

Agar foo() Va bar() Keyin  'bu erda kod foo () va bar () ikkalasi ham True qaytgan bo'lsa bajariladi, ammo agar foo () False qaytarsa, bar () hali ham baholanadiOxiri Agar

Bu nafaqat samarasiz, balki boshqa tilga o'rganib qolgan har qanday odam uchun kutilmagan natijalarga olib kelishi mumkin edi. Visual Basic .NET-da, yangi AndAlso va OrElse[1] ta'minlash uchun operatorlar qo'shildi qisqa tutashuvni baholash boshqa ko'plab tillar singari.

Ko'rsatkichga o'xshash aniq turlari endi yo'q

Var * o'zgaruvchan turlari Visual Basic .NET da eskirgan. Umumiy ish vaqti qaysi turlarning mos yozuvlar turlari va qaysi turlarning qiymat turlari ekanligiga qaror qiladi, shuning uchun bu endi dasturchining domeni emas.

Xususiyatlari: ruxsat bering va o'rnating

Sinf xususiyatlari endi Let va Set operatorlarini talab qilmaydi

Xatolarni chop etish

Debug.Print o'rniga Debug.Write va Debug.WriteLine o'rnatilgan

Jarayonlar

Protsedurali chaqiruvda Visual Basic .NET-da qavslar bo'lishi kerak.

Visual Basic .NET parametrlari uchun ByVal yoki ByRef spetsifikatsiyasini talab qiladi. Visual Basic-da, sukut bo'yicha ByRef-ni nazarda tutadigan spetsifikatsiyani bekor qilish mumkin. Kabi ko'plab ishlab chiqarish muhitlari Visual Studio .NET, avtomatik ravishda ByVal qo'shadi, shuning uchun amalda sukut ByRal emas, ByVal bo'ladi. Visual Basic kodini VB.NET-ga aylantirish uchun Visual Studio .NET 2002 va 2003-ga kiritilgan Visual Basic Upgrade Wizard kabi vositalar mavjud. Konversiya vositalari, agar kerak bo'lsa, Visual Basic dasturining semantikasini saqlab, ByRef-ni avtomatik ravishda qo'shib qo'yadi.

Nolga asoslangan massivlar

Visual Basic 5.0 va 6.0, agar "Option Base 1" e'lon qilinmasa, an'anaviy ravishda nolga asoslangan massivlarni ishlatadi (standart pastki chegara). Bu Visual Basic dasturlarida, ayniqsa dastur kutubxonasi chegaralarida o'zaro bog'liqlik bilan ishlashda ko'plab yakkama-yakka xatolarning manbai bo'lgan. .NET Common Language Runtime har qanday asosiy qiymatga ega bo'lgan massivlarni qo'llab-quvvatlasa ham, Visual Basic .NET va C # faqat nolga asoslangan qatorlar va ro'yxatlarni va .NET-ni taqdim eting Umumiy til spetsifikatsiyasi .NET tillari o'rtasida o'zaro ishlash uchun nolga asoslangan massivlarni talab qiladi.

Jagged massivlar

Visual Basic .NET a tushunchasini taqdim etdi silliq qator, bu erda qatorlar Visual Basic dasturchilariga o'rnatilgan massivlarning bir xil uzunligidan farqli o'laroq teng bo'lmagan uzunlikka ega bo'lishi mumkin.

Ma'lumotlarning o'zgaruvchan turi yo'q

.NET platformasida tuzilgan tillarda turlar qat'iy. Ish vaqti oldindan aniqlangan, nomlangan turga ega bo'lmagan noma'lum ob'ektga ruxsat berishiga qaramay, o'zgaruvchining turi uning ishlash muddati davomida o'zgarmasligi mumkin, shuning uchun Variant ma'lumotlar turini tashlab qo'yish kerak. Biroq, "Ob'ekt" turi amalda biroz o'xshash xatti-harakatlarga ega.

Haqiqiy ob'ektga yo'naltirilgan dasturlash

Visual Basic an edi ob'ektga asoslangan til. U sinflarni qo'llab-quvvatladi, ammo uni ob'ektga yo'naltirilgan tilga aylantiradigan boshqa tushunchalarni emas. Visual Basic .NET to'g'ri ob'ektga yo'naltirilgan quyidagi xususiyatlarga ega til:

  1. meros olish
  2. funktsiyani haddan tashqari yuklash

Garchi .NET-da hech qanday tilni yo'naltirish sinflar uchun bir nechta merosni olishga imkon bermasa ham - interfeyslarning ko'p merosxo'rligi qo'llab-quvvatlanadi.

MAQOMOTI dan NET-ga o'zgartiring

IDE haqiqatni yashirish uchun oqilona ish olib borar ekan, ActiveX ob'ektlariga bog'liqlik Visual Basic .NET-da o'chiriladi (garchi ular bilan aloqa qilish mexanizmlari mavjud bo'lsa ham MAQOMOTI .NET-da [2]) o'xshash funktsiyalarni taklif qiluvchi .NET komponentlari foydasiga. Ushbu siljish Visual Basic ishlab chiqaruvchisi uchun yaxshi, chunki Visual Basic-da ishlash muammolarining aksariyati MAQOMOTA interfeysi narxiga bog'liq edi.

Formalar dizayneri orqali elementar geometriyani boshqarish

Visual Basic ishlab chiquvchisining hayotidagi haqiqiy taqiqlardan biri har doim o'lchamlarni o'zgartirish kodini yozishdir. WinForms paradigmasi geometriya menejmenti bo'limida shunga o'xshash asboblar to'plami oldida juda ko'p narsani talab qiladi. Qt va GTK +, hech bo'lmaganda dasturchi OnResize ishlovchilarida kodlarning disklarini yozish o'rniga vidjetlarni shakllarga o'rnatishi mumkin.

Sukut bo'yicha parametr aniq

Visual Basic .NET-da Option Explicit sukut bo'yicha yoqilgan.

Tashqi havolalar

Adabiyotlar