មិថុនា
ការប្ដូរ DataType ក្នុង .NET
នៅក្នុងភាសារបស់ .NET (C# និង VB.NET) compiler គឺជាផ្នែកមួយរបស់ .NET Framework មាននាទីជាអ្នកបកប្រែកូដដែលយើងបានសរសេរទៅជាភាសាម៉ាស៊ីនដែលកុំព្យូទ័រអាចយល់បាន ។ Compiler ត្រូវតែយល់នូវប្រភេទរបស់ Data (DataType) ដែលប្រើនៅក្នុងកូដជាមុនសិន ទើបអាចធ្វើការបកប្រែបាន ។ ឧទាហរណ៍ប្រសិនបើអ្នកសរសេរ “540” + 23 នោះ compiler នឹងមានការភ័ន្តច្រឡំដោយមិនដឹងថាតើអ្នកចង់ធ្វើអ្វីព្រោះយើងមិនអាចយក String បូកជាមួយនឹង Number បានទេ ដូចនេះទើប compiler តម្រូវឲ្យប្ដូរ DataType ឲ្យដូចគ្នាជាមុនសិន ។
ពេលនេះទស្សនាវដ្ដី និងថ្នាក់បណ្តុះបណ្តាលកុំព្យូទ័រអាន-ANT យើងនឹងលើកយកពីការប្ដូរពី DataType មួយទៅ DataType មួយទៀតមកបង្ហាញ ។
នៅក្នុងភាសា C# ក៏ដូចជា VB.NET គឺមាននូវវិធីជាច្រើនសម្រាប់ធ្វើការប្ដូរ DataType ដែលក្នុងអត្ថបទនេះខ្ញុំសូមបង្ហាញនូវវិធីចំនួន៣គឺ ៖
1. តាម method របស់ class Convert
2. តាម method Parse () របស់ String
3. តាមវិធី Casting
♦ ការប្រើ Method របស់ class Convert
Convert គឺជា static class ដែលអាចបំប្លែងបានគ្រប់ DataType ទាំងអស់ដោយប្រើប្រាស់បណ្តា method ដែលមាននៅក្នុង Class មានដូចជាToInt16 () , ToInt32 () , ToInt64 () , ToString () , ToBoolean () , ToChar () និង method ជាច្រើនទៀត ។
នេះជាតារាងសម្រាប់ប្រាប់ពីតួនាទីរបស់ Method នីមួយៗនៅក្នុង Class Convert
ឧទាហរណ៍៖
♦ កូដ C#
♦ កូដ VB.NET
ចំណាំ៖ ក្នុងការ Convert តម្លៃពី String ទៅតម្លៃដែលមាន DataType ដូចជា DateTime, Boolean ឬពពួក numeric តម្លៃរបស់ string ត្រូវតែផ្ទុកនូវតម្លៃដែលជាប្រភេទដែលយើងចង់ Convert ទៅ បើមិនដូចច្នោះទេវានឹងមាន Error runtime កើតឡើង ។
ឧទាហរណ៍៖
កូដ C#
កូដ VB.NET
ការប្រើ Method Parse () និង TryParse () របស់ String
Method ទាំងពីរនេះធ្វើការ Convert ពី String ទៅកាន់ប្រភេទនៃ DataType ដទៃទៀតដូចជា Boolean ពពួក numeric និង DateTime ប៉ុន្តែអ្វីដែលខុសគ្នានោះគឺ Method TryParse () មិនបណ្តាលឲ្យមាន Exception (Error run time) កើតឡើងទេនៅពេលដែលវាធ្វើការ Convert មិនបាន ហើយវានឹង return តម្លៃជា null តែម្តង ។
ចំពោះការ Convert តាមរយៈ Method ទាំងពីរនេះ តម្លៃ String ដែលយើងចង់ធ្វើការ Convert ត្រូវតែមានទម្រង់ជាប្រភេទ DataType ដែលយើងចង់ Convert ទៅ ។
Parse ()
ឧទាហរណ៍៖
កូដ C#
កូដ VB.NET
"4/5/16" ជាstringដែលមានទម្រង់ជា DateTime
ប្រសិនបើយើងផ្ដល់តម្លៃ string ដែលត្រូវ Convert មិនមានទម្រង់ដូចទៅនឹងប្រភេទ DataType ដែលយើងចង់ Convert ទេនោះ វានឹងកើតមាន Exception (Error Run Time) កើតឡើងជាមិនខាន ។
TryParse ()
ឧទាហរណ៍៖
កូដ C#
កូដ VB.NET
តម្លៃ String ដែលស្ថិតនៅក្នុងវង់ក្រចកមិនមានទម្រង់ជា datetime ទេ តែវាក៏នឹងមិនមាន Exception កើតឡើងដែរ នៅចុងបញ្ចប់វានឹង return តម្លៃ false ហើយនិងបោះតម្លៃ 01-01-0001 ដែលជាតម្លៃចាប់ផ្តើមរបស់ datetime ទៅឲ្យ variable d ។
កូដ C#
កូដ VB.NET
ចំណាំ៖
នេះជាហេតុផលដែលអាចឲ្យយើងធ្វើការសម្រេចចិត្តថា តើគួរប្រើរបៀបនៃការបំប្លែងមួយណា ដែលយើងគួរតែយកមកប្រើ ។ ចំពោះការបំប្លែងតាមរយៈការប្រើប្រាស់ method នៅក្នុង Class Convert ទោះជាវាមិនបណ្តាលឲ្យមានការ Error នៅពេលដំណើរការយ៉ាងណាក៏ដោយ វានៅតែមានគុណវិបត្តិ ដែលយើងជាអ្នក Programming គួរតែគិតនោះគឺល្បឿនក្នុងការដំណើរការ ដែលធ្វើឲ្យយើងគិតទៅដល់ Method Parse () ។
ការប្រើតាម Casting
ជាទូទៅការបំប្លែងនៅក្នុង C# គឺមានពីរប្រភេទគឺ Implicit និងExplicit
Implicit ៖ គឺជាការបំប្លែងដោយស្វ័យប្រវត្តិ និង មិនមានការបាត់បង់ Data អ្វីឡើយពីព្រោះវាធ្វើការបំប្លែងពី DataType ដែលមាន bit តូចទៅកាន់ DataType type ដែលមាន bit ធំ ។
ឧទាហរណ៍៖
កូដ C#
កូដ VB.NET
យើងមិនចាំបាច់បំប្លែងអ្វីទាំងអស់ Compiler នឹងធ្វើការបំប្លែងដោយស្វ័យប្រវត្តិ ។
Explicit ៖ ប្រសិនបើយើងចង់ធ្វើការផ្ដល់តម្លៃពី Double ទៅកាន់ Int វិញម្តង យើងមិនអាចបោះតម្លៃដូចខាងលើបានទេ គឺត្រូវធ្វើការ Casting ទៅលើតម្លៃនោះជាមុនសិន ។ តែចំពោះការ Casting អាចនឹងមានការបាត់បង់ data ឬ Error កើតឡើង ។
ឧទាហរណ៍៖
កូដ C#
កូដ VB.NET
ចំពោះតម្លៃដែលផ្ដល់ឲ្យទៅ intVal គឺមានតែ ៣០០ ប៉ុណ្ណោះ ដូចនេះហើយបានជាយើងនិយាយខាងលើថាការ Casting អាចធ្វើឲ្យមានការបាត់បង់ Data ។
ចំណាំ៖ casting អាច convert បានតែពួក numeric ទៅកាន់ពពួក numeric ឬ class ទៅកាន់ Class (derieve class ទៅ base class) ដូចគ្នាប៉ុណ្ណោះ (compartible DataType) ។
♦ រៀបរៀងអត្ថបទដោយ ៖ កញ្ញា ហ៊ាន ម៉ាលាភ ដកស្រង់ចេញពីទស្សនាវដ្ដីអាន-ANT
♦ វគ្គសិក្សា C# Beginning តម្លៃ ៧០ដុល្លា http://training.antkh.com/csharp_for_beginner.aspx
♦ សូមចូលរួមជាសមាជិក ANT Training Group ដើម្បីតាមដានសម្មភាពប្រចាំថ្ងៃជាមួយអាន-ANT
♦ ចុច Like គេហទំព័រ www.antkh.com ដើម្បីទទួលបានអត្ថបទថ្មីៗដែលទាក់ទងនឹងបច្ចេកវិទ្យារៀងរាល់ថ្ងៃ
មតិ និងយោបល់ទៅលើអត្ថបទនេះ (តាម Facebook)
ខាងក្រោមនេះជាយោបល់ផ្សេងៗរបស់អ្នកទស្សនា