វីហ្សួលបេហ៊្សិក.ណេត: ទំនាក់ទំនងទៅនឹងបណ្ដាកំណែចាស់ៗជាងគេនៃវីហ្សួលបេហ៊្សិក (VB៦ និង ពីមុនៗ)

ទំនាក់ទំនងទៅនឹងបណ្ដាកំណែចាស់ៗជាងគេនៃវីហ្សួលបេហ៊្សិក (VB៦ និង ពីមុនៗ)

តើវីហ្សួលបេហ៊្សិក.ណេតគួរតែចាត់ទុកថាគ្រាន់តែជាកំណែមួយផ្សេងទៀតនៃវីហ្សួលបេហ៊្សិក រឺក៏ ភាសាមួយដាច់ដោយឡែកពីគ្នា វានៅតែជាប្រធានបទនៃកិច្ចពិភាក្សាតទល់គ្នាដដែល។ ក្រៅពីនេះ ប្រមាណវិធីខ្លះត្រូវបានផ្លាស់ប្ដូរ និង ប្រមាណវិធីទាំងនោះអាចបំលែងដោយស្វ័យប្រវត្តិ វាក្យសម្ព័ន្ធគោលនៃភាសាមិនឃើញមានការផ្លាស់ប្ដូរច្រើន ដែលញែកឱ្យដាច់ ភាពឆបគ្នាឡើយ។ មាន ការបន្ថែមថ្មីខ្លះដើម្បីគាំទ្រដល់លក្ខណៈពិសេសថ្មី ដូចជាការចាប់យកអញ្ញត្រកម្មតាមរចនាសម្ព័ន្ធ និង បណ្ដាកន្សោមមានបរិថបខ្លីៗ។ ក៏មាន ការផ្លាស់ប្ដូរប្រភេទទិន្នន័យសំខាន់ពីរបានកើតមានរួមនិងការផ្លាស់ប្ដូរទៅជា VB.NET ផងដែរ : បើប្រៀបធៀបទៅនឹងVB៦ ប្រភេទទិន្នន័យ  Integer (ចំនួនគត់) ត្រូវបានកើនឡើងទ្វេដងនូវល្វែងពី ១៦ ប៊ីត ទៅ ៣២ ប៊ីត និងប្រភេទទិន្នន័យ   Long (វែង) ត្រូវបានកើនឡើងទ្វេដងនូវល្វែងពី ៣២ ប៊ីត ទៅ ៦៤ ប៊ីត។ នេះជាការពិតចំពោះគ្រប់កំណែទាំងអស់នៃ VB.NET។ ចំនួនគត់១៦-ប៊ីតនៅគ្រប់កំណែទាំងអស់នៃ VB.NET ឥឡូវត្រូវបានគេស្គាល់ថាជា  Short (ខ្លី)។ តាមរយៈភាពស្រដៀងគ្នា អ្នករៀបរៀងGUIរបស់Windows Formsក៏មានភាពស្រដៀងគ្នាមែនទែនខាងរចនាបថនិងអនុគមន៍ទៅនឹងអ្នករៀបរៀងទម្រង់បែបបទវីហ្សួលបេហ៊្សិក។

កំណែនេះ មួយចំនួនបានប្រើសម្រាប់វីហ្សួលបេហ៊្សិកថ្មី (៧,៧.១,៨,៩, ...) ដែលសបញ្ជាក់ច្បាស់លាស់វាត្រូវបានបង្ហាញឱ្យឃើញតាមរយៈម៉ៃក្រូសូផ្វថា នៅតែជាផលិតផលចាំបាច់ដដែល ដូចគ្នាទៅនឹងវីហ្សួលបេហ៊្សិកចាស់ដែរ។​ 

អ្វីមួយចំនួនដែល បាន ផ្លាស់ប្ដូរជាក់លាក់គឺសញ្ញាន័យវិទ្យា— ដោយសារអ្វីៗក្នុងភាសាកម្មវិធីអាស្រ័យវត្ថុដែលរត់លើ វិស្វៈបច្ចយនិយម រាប់រំយោងមួយ វាបានពឹងផ្អែកលើ COM ទៅជា ភាសាតម្រង់វត្ថុពេញលេញនៅពីក្រោយដោយក្របខណ្ឌ.ណេត មានការប្រកបផ្សំចូលគ្នានៃពេលរត់ភាសាសាមញ្ញ (យន្តនិម្មិត្តប្រើប្រាស់ប្រជុំសំណល់តាមជនិតកម្ម និង វិស្វៈចំណងក្រងទាន់ពេល) និង បណ្ណាល័យថ្នាក់មួយធំជាងគេ។ ភាពទូលំទូលាយបានកើនឡើងមកទល់ពេលនេះក៏ជាបញ្ហាមួយដែលពួកអ្នកអភិវឌ្ឍ VB ត្រូវតែដោះស្រាយនៅពេលដែលវាកើតមានឡើងក្នុងភាសានេះ ទោះបីយ៉ាងណានេះជាអ្វីមួយដែលបានអាស្រ័យដោយលក្ខណៈពិសេស My ក្នុងវីហ្សួលស្ទីដយោ២០០៥។

បំលាស់ប្ដូរបានបំផ្លែងរូបមន្តគោលជាច្រើនឱ្យទៅជារូបមន្ត ត្រឹមត្រូវ ធ្វើការទាក់ទងនឹងប្រតិបត្តន៍និងតំហែភាព។ **អនុគមន៍និងបណ្ណាល័យខ្លះលែងមាន អនុគមន៍និងបណ្ណាល័យដទៃទៀតអាចប្រើបាន ប៉ុន្តែមិនមានប្រសិទ្ធិភាពដូចជម្រើស.ណេត ដើម ឡើយ។ ទោះបីជាវាចងក្រងឡើង ក៏អនុវត្តកម្ម VB៦ ដែលបំលែងហើយភាគច្រើនត្រូវការបុនកត្តាការដើម្បីទាញយកអត្ថប្រយោជន៍ទាំងស្រុងពីភាសាថ្មីនេះ។ ឯកសារកម្មប្រើដើម្បីបិទបាំងបម្រែបម្រួលខ្លះក្នុងវាក្យសម្ព័ន្ធ អនូកាកិណ្ណការអនុវត្តកម្ម ការដាក់ឱ្យប្រើប្រាស់ និង បច្ចេកសព្ទវិទ្យា។Migration - Upgrading from Visual Basic 6.0 MSDN – Developer Center – Visual Basic 6.0 Resource Center – Migration –

ឧទាហរណ៍ប្រៀបធៀប

ឧទាហរណ៍សាមញ្ញជាបន្តបន្ទាប់ប្រៀបធៀបគ្នារវាង វាក្យសម្ព័ន្ធ VB និង VB.NET។ ឧទាហរណ៍នីមួយៗបង្កើតនូវប្រអប់សារ "Hello, World" មួយ ជាមួយនិងឆ្នុច OK ។

VB៦:

Private Sub Command1_Click()
    MsgBox "Hello, World"
End Sub

VB.NET (ថ្នាក់ MsgBox រឺ MessageBox អាចត្រូវបានគេប្រើ):

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button1.Click
    MessageBox.Show("Hello, World")
End Sub

ទាំងវីហ្សួលបេហ៊្សិក៦ និង វីហ្សួលបេហ៊្សិក.ណេត ធ្វើជនិតកម្មដោយស្វ័យប្រវត្តិ ពំនោល Sub និង End Sub នៅពេលដែលឆ្នុចឆ្លើយតបត្រូវបានឃ្លិខក្នុងទិដ្ឋភាពរចនា។ វីហ្សួលបេហ៊្សិក.ណេតក៏នឹងធ្វើជនិតកម្មពំនោល Class និង End Class ដែលចាំបាច់ផងដែរ។ អ្នកអភិវឌ្ឍត្រូវការត្រឹមតែបញ្ចូលពំនោលនេះដើម្បីបង្ហាញប្រអប់សារ "Hello, World" តែប៉ុណ្ណោះ។
 ការហៅវិធានទាំងអស់ត្រូវបានធ្វើឡើងជាមួយរង្វង់ក្រចកក្នុង VB.NET រីឯក្នុង VB៦ ធ្លាប់មានអនុសញ្ញាផ្សេងៗសម្រាប់បណ្ដាអនុគមន៍ (រង្វង់ក្រចកតម្រូវឱ្យមាន) និង អនុ (គ្មានរង្វង់ក្រចកអនុញ្ញាត លុះត្រាតែបានហៅប្រើពាក្យគន្លឹះ Call) ។
 ឈ្មោះ Command1 និង Button1 វាមិនជាសំខាន់អ្វីទេ។ យ៉ាងណាក៏ដោយ ទាំងនេះគឺជាឈ្មោះដើមសម្រាប់ឆ្នុចបញ្ជាមួយក្នុង VB៦ និង VB.NET ដូចៗគ្នា។
 ក្នុង VB.NET ពាក្យគន្លឹះ Handles គឺត្រូវបានប្រើដើម្បីបង្កើត អនុ Button1_Click ជាអង្គចាប់ព្រឹត្តិការណ៍ Click នៃវត្ថុ Button1។ ក្នុង VB៦ ពួកអនុអង្គចាប់ព្រឹត្តិការណ៍ ត្រូវមានឈ្មោះជាក់លាក់ដែលឈ្មោះរបស់វត្ថុនេះគឺ ("Command1") បន្ទាត់ពីក្រោម ("_") និងឈ្មោះរបស់ព្រឹត្តិការណ៍ ("Click" ទៅជា "Command1_Click")។
 មានអនុគមន៍មួយហៅថា MsgBox ក្នុងលំហឈ្មោះ Microsoft.VisualBasic ដែលត្រូវបានគេប្រើស្រដៀងទៅនឹងអនុគមន៍ឆ្លើយឆ្លងគ្នាក្នុង VB៦ដែរ។ មានការមិនចុះសម្រុងគ្នាមួយចំពោះអនុគមន៍ណាមួយត្រូវប្រើជាប្រត្តិបត្តិកិច្ចល្អបំផុត (មិនត្រឹមតែរឹតបន្តឹងដើម្បីបង្ហាញប្រអប់សារប៉ុណ្ណោះទេ តែចាត់ទុកថាជាលក្ខណៈពិសេសផ្សេងៗនៃលំហឈ្មោះ Microsoft.VisualBasic ដែរ)។ ពួកអ្នកធ្វើកម្មវិធីចូលចិត្តធ្វើអ្វីៗតាមរយៈ "មធ្យោបាយ.ណេត" ដោយហេតុថាថ្នាក់មួយចំនួនរបស់ក្របខណ្ឌនេះមានលក្ខណៈពិសេសបន្ថែម និង ជាភាសាមានភាពច្បាស់លាស់តិច។ អ្នកដទៃលើកឡើងថាការប្រើប្រាស់លក្ខណៈភាសាជាក់លាក់ធ្វើឱ្យក្រមកាន់តែអាចអានបាន (ឧទាហរណ៍ដូចជា ការប្រើប្រាស់ int (C#) រឺ Integer (VB.NET) ជំនួសឱ្យ System.Int32)។
 ក្នុង VB ២០០៨ ការបញ្ចូលនៃ ByVal sender as Object, ByVal e as EventArgs ក្លាយជាមិនអាចអត់បាន។

ឧទាហរណ៍បន្តបន្ទាប់បង្ហាញនូវភាពប្លែកគ្នារវាង VB៦ និង VB.NET។ ឧទាហរណ៍ទាំងពីរ ដើម្បីបិទបង្អួចសកម្ម។

VB៦:

Sub cmdClose_Click()
    Unload Me
End Sub

VB.NET:

Sub btnClose_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnClose.Click
    Me.Close()
End Sub

បុព្វបទ 'cmd'  ត្រូវបានជំនួសដោយបុព្វបទ 'btn'  ដែលរួមបង្កើតជាអនុសញ្ញាថ្មីដែលបានចែងកាលពីមុន។

វីហ្សួលបេហ៊្សិក៦មិនបានផ្ដល់ទម្រង់កាត់ខ្លីៗនៃការីទូទៅឡើយ។ ចំណុចបន្តបន្ទាប់គឺដូចគ្នា:

VB៦:

Sub Timer1_Timer()
    Me.Height = Me.Height - 1
End Sub

VB.NET:

Sub Timer1_Tick(ByVal sender As Object, ByVal e As EventArgs) Handles Timer1.Tick
    Me.Height -= 1
End Sub