SlideShare a Scribd company logo
1 of 3
Download to read offline
VB .NET 2005 By Warawut Khangkhan
การใชตวแปรชน#ดอาร&เรย& (Array) ใน VB.NET 2005 express Edition



         การใชตวแปรชนดอารเรย (Array) ใน VB .NET 2005 Express Edition
       อาร&เรย& (Array) เป4นกล67มของขอม;ลชน#ดเด<ยวกนท<>ใชเน?@อท<>ในหน7วยความจDาต7อเน?>องกนไป อาร&เรย&ม<ประโยชน&อย7าง
มากในการเข<ยนโปรแกรม เพราะช7วยลดความย67งยากในการประกาศตวแปรชน#ดเด<ยวกนจDานวนมาก และช7วยใหการใชงาน
ตวแปรเหล7าน@นทDาไดง7ายขJน@
       เช7น หากเราตองการเกKบคะแนนของนกศJกษาจDานวน 100 คน ไวในหน7วยความจDาเพ?>อคDานวณเกรด เราอาจตอง
ประกาศตวแปร ดงน<@

                  Dim StudentScore1 As Short
                  Dim StudentScore2 As Short
                  Dim StudentScore3 As Short
                  ....
                  Dim StudentScore100 As Short

        แต7หากเราใชอาร&เรย&ขนาด 100 สมาช#กในการจดเกKบขอม;ลแทนการใชตวแปรเด<>ยว ๆ จDานวน 100 ตวแปร จะทDาให
ความย67งยากในการเข<ยนโปรแกรมลดลงไปอย7างมาก ดงตวอย7าง

                  Dim StudentScore(99) As Short

          เป4นการประกาศตวแปรอาร&เรย&ช?>อ StudentScore ท<>ม< 100 สมาช#ก เราสามารถเขาถJงสมาช#กใด ๆ ในอาร&เรย&ไดโดยใช
อ#น เดKกซ& (index) ในการอางอ# ง เช7น จากตวอย7 า งหากเราตองการอางถJ ง คะแนนของนกศJ ก ษาคนท< > 2 เราจะอางถJ งดวย
StudentScore(1) เป4นตน
          อ#นเดKกซ&ในอาร&เรย&ของ VB .NET จะเร#มท<> 0 เสมอ (เหม?อน C#, C++ และ Java) ดงน@นถาประกาศอาร&เรย&ดวยตวเลข
                                              >
99 อาร& เรย&น<@ จะม<จD า นวน 99 + 1 = 100 สมาช# ก โดย StudentScore(0) จะหมายถJง สมาช#ก แรกของอาร& เรย& (คะแนนของ
นกศJกษาคนท<> 1), StudentScore(1) จะหมายถJงสมาช#กท<> 2 ของอาร&เรย& (คะแนนของนกศJกษาคนท<> 2) และ StudentScore(99)
จะหมายถJงสมาช#กท<> 100 ของอาร&เรย& (คะแนนของนกศJกษาคนท<> 100)




                                                                -1-
VB .NET 2005 By Warawut Khangkhan
การใชตวแปรชน#ดอาร&เรย& (Array) ใน VB.NET 2005 express Edition


อารเรยหลายมต (Multidimensional Array)
         จากตวอย7างขางตน ตวแปร StudentScore เป4นอาร&เรย&ท<>สามารถเกKบคะแนนของนกศJกษาแต7ละคนไดเพ<ยงว#ชาเด<ยว
เท7าน@น เร<ยกว7าเป4นอาร&เรย&ม#ต#เด<ยว (One Dimensional Array) แต7ในบางคร@งเราอาจจDาเป4นตองจดเกKบขอม;ลท<>ม<หลายม#ต# เช7น
เกKบคะแนนท6ก ๆ ว#ชาของนกศJกษาแต7ละคนเอาไวเพ?>อค#ดเกรดเฉล<>ย เป4นตน ว#ธ<หนJ>งท<>ทDาไดกKค?อ การใชอาร&เรย&หลายม#ต#
(Multidimensional Array)
         การประกาศตวแปรอาร&เรย&หลายม#ต#จะม<ร;ปแบบคลายกบการประกาศอาร&เรย&ม#ต#เด<ยว เช7น ถาเราตองการประกาศ
ตวแปรอาร&เรย&ช?>อ StudentScore ใหสามารถจดเกKบคะแนนท@ง 5 ว#ชา ไดแก7 คณ#ตศาสตร&, ว#ทยาศาสตร&, สงคมศาสตร&, ภาษา
ไทย และภาษาองกฤษ ของนกศJกษาจDานวน 100 คนไว จะตองประกาศ ดงน<@

                  Dim StudentScore(99, 4) As Short 'ประกาศอาร&เรย& 2 ม#ต# ขนาด 100 x 5

       ตวอย7างขางตนเป4นการประกาศอาร&เรย& 2 ม#ต# ขนาด 100 x 5 (รวม 500 สมาช#ก) โดยอ#นเดKกซ&ต วแรกใชอางถJง
นกศJกษาแต7ละคน ส7วนอ#นเดKกซ&ตวท<>สองใชอางถJงว#ชาต7าง ๆ (0, 1, 2, 3, 4 ใชแทนคณ#ศาสตร&, ว#ทยาศาสตร&, สงคมศาสตร&,
ภาษาไทย และภาษาองกฤษ ตามลDาดบ)
       ตวอย7างต7อไปจะเป4นการประกาศตวแปรอาร&เรย& 3 ม#ต# ขนาด 9 x 5 x 3 (รวม 135 สมาช#ก) และอาร&เรย& 4 ม#ต#
ขนาด 21 x 11 x 51 x 3 (รวม 35,343 สมาช#ก) ตามลDาดบ

                  Dim Arr3Dimension(8, 4, 2) As String                     'อาร&เรย& 3 ม#ต# ขนาด 9 x 5 x 3
                  Dim Arr4Dimension(20, 10, 50, 2) As Integer              'อาร&เรย& 4 ม#ต# ขนาด 21 x 11 x 51 x 3

         เราสามารถกDาหนดค7าเร#มตนและขอบเขตของตวแปรอาร&เรย& ไดเช7นเด<ยวกบตวแปรปกต# ดงน<@
                              >

                  [ Dim | Private | Public | Static ] <ชอตวแปรอารเรย> (<ขนาดของม)ตแรก>,
                                                                                    )
                  <ขนาดของม)ต)ท- 2>, ..., <ขนาดของม)ต)ท- n>) As <ชน)ดข5อม6ล> = <Expression>
         เช7น
                  Dim Arr1(4) As Short = {50, 60, 0, 3, 7} 'อาร&เรย& 1 ม#ต# ขนาด 5 สมาช#ก
                                                           'ม<ค7าเร#มตน 50, 60, 0, 3 และ 7
                                                                    >

           เราสามารถเคล< ยร&ค 7 าท6 ก ๆ สมาช# ก ของอาร& เ รย& ให เป4 นค7 า เร# > มต น (ขJ@ น อย; 7ก บชน# ดข อม; ล ) ได โดยใชคD าส> ง
Erase <ช?ออาร&เรย&> เช7น
         >
                 Erase StudentScore       'เป4นการเคล<ยร&คะแนนของนกศJกษาท6กคนใหเป4น 0




                                                                -2-
VB .NET 2005 By Warawut Khangkhan
การใชตวแปรชน#ดอาร&เรย& (Array) ใน VB.NET 2005 express Edition


ไดนามกอารเรย (Dynmic Array)
          ในบางคร@งเราไม7สามารถร;ขนาดท<>แน7นอนของอาร&เรย&ได เช7นถาตองการเกKบช?>อหนงส?อท@งหมดในหองสม6ด ซJ>งเรายง
ไม7ร;จDานวนหนงส?อท<แน7นอนในช7วงเข<ยนโปรแกรม กKจะทDาใหเราไม7สามารถกDาหนดขนาดท<แน7นอนของอาร&เรย&ได ทางออกง7าย ๆ
                      >                                                             >
ของปsญหาน<@ค?อ เราอาจกDาหนดขนาดของอาร&เรย&เผ?>อไวมาก ๆ แต7การกDาหนดขนาดอาร&เรย&ใหญ7เก#นความจDาเป4นจะทDาใหส#@น
เปล?องเน?@อท<หน7วยความจDาโดยใช7เหต6 นอกจากน<@ยงทDาใหโปรแกรมของเราไม7ม<ความย?ดหย6นเท7าท<ควรดวย
              >                                                                        7       >
          ว#ธ<ท<>เหมาะสมกว7า ค?อ การใชไดนาม#กอาร&เรย& (Dynamic Array) ซJ>งหมายถJง อาร&เรย&ท<>เราสามารถเปล<>ยนแปลงขนาด
ไดในขณะรนโปรแกรม การประกาศไดนาม#กอาร&เรย&ม<ร;ปแบบดงน<@

                  Dim <ชอตวแปรอารเรย>( ) As <ชน)ดของข5อม6ล>

         เช7นถาหากตองการกDาหนดไดนาม#กอาร&เรย&เพ?>อเกKบคะแนนสอบของนกศJกษา เราอาจประกาศว7า

                  Dim StudentScore( ) As Short          'ประกาศอาร&เรย& 1 ม#ต# เป4นไดนาม#กอาร&เรย&
                                                        'ม<ชน#ดขอม;ลเป4น Short

       หลงจากน@นเม?อทราบจDานวนขอม;ลท<แน7นอน เราสามารถเปล<>ยนแปลงขนาดของอาร&เรย&ไดโดยใชคDาส>ง Redim เช7น ถา
                   >                   >
ต7อมาทราบว7านกศJกษาม<จDานวนท@งส#@น 50 คน เราสามารถใชคDาส>งต7อไปน<@เพ?>อกDาหนดใหตวแปรอาร&เรย&ดงกล7าวม<ขนาด 50
สมาช#ก

                  Redim StudentScore(49) As Short 'กDาหนดขนาดของอาร&เรย&ใหม<ขนาด 50 สมาช#ก

         อย7า งไรกKด < เราควรเปล<> ย นแปลงขนาดของอาร&เ รย&ด วยความระมดระวง เพราะถาหากม<ก ารจดเกK บขอม; ล ไวใน
อาร&เรย&แลว การลดขนาดอาร&เรย&ใหเลKกลงจะทDาใหขอม;ลบางส7วนส;ญหายไป

หมายเหต8
        เพ?>อปwองกนไม7ใหขอม;ลท<>อย;7ในอาร&เรย&ส;ญหาย เราสามารถใชคDาส>ง Redim ร7วมกบออปช>น (Option) Preserve ได เช7น
Redim Preserve StudentScore(49) As Short




                                                                -3-

More Related Content

Similar to การใช้ตัวแปรอาร์เรย์ (Array) ใน VB.NET 2005 Express Editor

การตรวจสอบและจัดการกับข้อผิดพลาดใน VB..NET 2005 Express Editor
การตรวจสอบและจัดการกับข้อผิดพลาดใน VB..NET 2005 Express Editorการตรวจสอบและจัดการกับข้อผิดพลาดใน VB..NET 2005 Express Editor
การตรวจสอบและจัดการกับข้อผิดพลาดใน VB..NET 2005 Express EditorWarawut
 
Java Programming: หลักการเชิงอ็อบเจกต์
Java Programming: หลักการเชิงอ็อบเจกต์Java Programming: หลักการเชิงอ็อบเจกต์
Java Programming: หลักการเชิงอ็อบเจกต์Thanachart Numnonda
 
บทที่ 1 บทนำ
บทที่ 1 บทนำบทที่ 1 บทนำ
บทที่ 1 บทนำKittichai Pinlert
 
Java Programming [8/12] : Arrays and Collection
Java Programming [8/12] : Arrays and CollectionJava Programming [8/12] : Arrays and Collection
Java Programming [8/12] : Arrays and CollectionIMC Institute
 
Java Programming: อะเรย์และคอลเล็กชั่น
Java Programming: อะเรย์และคอลเล็กชั่นJava Programming: อะเรย์และคอลเล็กชั่น
Java Programming: อะเรย์และคอลเล็กชั่นThanachart Numnonda
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1Thank Chiro
 

Similar to การใช้ตัวแปรอาร์เรย์ (Array) ใน VB.NET 2005 Express Editor (11)

การตรวจสอบและจัดการกับข้อผิดพลาดใน VB..NET 2005 Express Editor
การตรวจสอบและจัดการกับข้อผิดพลาดใน VB..NET 2005 Express Editorการตรวจสอบและจัดการกับข้อผิดพลาดใน VB..NET 2005 Express Editor
การตรวจสอบและจัดการกับข้อผิดพลาดใน VB..NET 2005 Express Editor
 
Java Programming: หลักการเชิงอ็อบเจกต์
Java Programming: หลักการเชิงอ็อบเจกต์Java Programming: หลักการเชิงอ็อบเจกต์
Java Programming: หลักการเชิงอ็อบเจกต์
 
บทที่ 1 บทนำ
บทที่ 1 บทนำบทที่ 1 บทนำ
บทที่ 1 บทนำ
 
Java Programming [8/12] : Arrays and Collection
Java Programming [8/12] : Arrays and CollectionJava Programming [8/12] : Arrays and Collection
Java Programming [8/12] : Arrays and Collection
 
Lesson6
Lesson6Lesson6
Lesson6
 
Chepter3
Chepter3Chepter3
Chepter3
 
11
1111
11
 
Java Programming: อะเรย์และคอลเล็กชั่น
Java Programming: อะเรย์และคอลเล็กชั่นJava Programming: อะเรย์และคอลเล็กชั่น
Java Programming: อะเรย์และคอลเล็กชั่น
 
20101007 rarebooks-preservation
20101007 rarebooks-preservation20101007 rarebooks-preservation
20101007 rarebooks-preservation
 
20110303 joomla-appserv-server2go
20110303 joomla-appserv-server2go20110303 joomla-appserv-server2go
20110303 joomla-appserv-server2go
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1
 

More from Warawut

Database design
Database designDatabase design
Database designWarawut
 
Object-Oriented Programming 8
Object-Oriented Programming 8Object-Oriented Programming 8
Object-Oriented Programming 8Warawut
 
Object-Oriented Programming 7
Object-Oriented Programming 7Object-Oriented Programming 7
Object-Oriented Programming 7Warawut
 
Object-Oriented Programming 6
Object-Oriented Programming 6Object-Oriented Programming 6
Object-Oriented Programming 6Warawut
 
Management Information System 6
Management Information System 6Management Information System 6
Management Information System 6Warawut
 
Management Information System 5
Management Information System 5Management Information System 5
Management Information System 5Warawut
 
Business Computer Project 3
Business Computer Project 3Business Computer Project 3
Business Computer Project 3Warawut
 
Object-Oriented Programming 4
Object-Oriented Programming 4Object-Oriented Programming 4
Object-Oriented Programming 4Warawut
 
Business Computer Project 1
Business Computer Project 1Business Computer Project 1
Business Computer Project 1Warawut
 
Chapter 1 Organization & MIS
Chapter 1 Organization & MISChapter 1 Organization & MIS
Chapter 1 Organization & MISWarawut
 
Object-Oriented Programming 3
Object-Oriented Programming 3Object-Oriented Programming 3
Object-Oriented Programming 3Warawut
 
Object-Oriented Programming 2
Object-Oriented Programming 2Object-Oriented Programming 2
Object-Oriented Programming 2Warawut
 
Object-Oriented Programming 1
Object-Oriented Programming 1Object-Oriented Programming 1
Object-Oriented Programming 1Warawut
 
Upload File
Upload FileUpload File
Upload FileWarawut
 
Session and Cookie
Session and CookieSession and Cookie
Session and CookieWarawut
 
Form Validation
Form ValidationForm Validation
Form ValidationWarawut
 
Tips & Track
Tips & TrackTips & Track
Tips & TrackWarawut
 
Edit & Delete Data
Edit & Delete DataEdit & Delete Data
Edit & Delete DataWarawut
 
Search Data
Search DataSearch Data
Search DataWarawut
 

More from Warawut (20)

Database design
Database designDatabase design
Database design
 
Object-Oriented Programming 8
Object-Oriented Programming 8Object-Oriented Programming 8
Object-Oriented Programming 8
 
Object-Oriented Programming 7
Object-Oriented Programming 7Object-Oriented Programming 7
Object-Oriented Programming 7
 
Object-Oriented Programming 6
Object-Oriented Programming 6Object-Oriented Programming 6
Object-Oriented Programming 6
 
Management Information System 6
Management Information System 6Management Information System 6
Management Information System 6
 
Management Information System 5
Management Information System 5Management Information System 5
Management Information System 5
 
Business Computer Project 3
Business Computer Project 3Business Computer Project 3
Business Computer Project 3
 
Object-Oriented Programming 4
Object-Oriented Programming 4Object-Oriented Programming 4
Object-Oriented Programming 4
 
Business Computer Project 1
Business Computer Project 1Business Computer Project 1
Business Computer Project 1
 
Chapter 1 Organization & MIS
Chapter 1 Organization & MISChapter 1 Organization & MIS
Chapter 1 Organization & MIS
 
Object-Oriented Programming 3
Object-Oriented Programming 3Object-Oriented Programming 3
Object-Oriented Programming 3
 
Object-Oriented Programming 2
Object-Oriented Programming 2Object-Oriented Programming 2
Object-Oriented Programming 2
 
Object-Oriented Programming 1
Object-Oriented Programming 1Object-Oriented Programming 1
Object-Oriented Programming 1
 
Upload File
Upload FileUpload File
Upload File
 
Login
LoginLogin
Login
 
Session and Cookie
Session and CookieSession and Cookie
Session and Cookie
 
Form Validation
Form ValidationForm Validation
Form Validation
 
Tips & Track
Tips & TrackTips & Track
Tips & Track
 
Edit & Delete Data
Edit & Delete DataEdit & Delete Data
Edit & Delete Data
 
Search Data
Search DataSearch Data
Search Data
 

การใช้ตัวแปรอาร์เรย์ (Array) ใน VB.NET 2005 Express Editor

  • 1. VB .NET 2005 By Warawut Khangkhan การใชตวแปรชน#ดอาร&เรย& (Array) ใน VB.NET 2005 express Edition การใชตวแปรชนดอารเรย (Array) ใน VB .NET 2005 Express Edition อาร&เรย& (Array) เป4นกล67มของขอม;ลชน#ดเด<ยวกนท<>ใชเน?@อท<>ในหน7วยความจDาต7อเน?>องกนไป อาร&เรย&ม<ประโยชน&อย7าง มากในการเข<ยนโปรแกรม เพราะช7วยลดความย67งยากในการประกาศตวแปรชน#ดเด<ยวกนจDานวนมาก และช7วยใหการใชงาน ตวแปรเหล7าน@นทDาไดง7ายขJน@ เช7น หากเราตองการเกKบคะแนนของนกศJกษาจDานวน 100 คน ไวในหน7วยความจDาเพ?>อคDานวณเกรด เราอาจตอง ประกาศตวแปร ดงน<@ Dim StudentScore1 As Short Dim StudentScore2 As Short Dim StudentScore3 As Short .... Dim StudentScore100 As Short แต7หากเราใชอาร&เรย&ขนาด 100 สมาช#กในการจดเกKบขอม;ลแทนการใชตวแปรเด<>ยว ๆ จDานวน 100 ตวแปร จะทDาให ความย67งยากในการเข<ยนโปรแกรมลดลงไปอย7างมาก ดงตวอย7าง Dim StudentScore(99) As Short เป4นการประกาศตวแปรอาร&เรย&ช?>อ StudentScore ท<>ม< 100 สมาช#ก เราสามารถเขาถJงสมาช#กใด ๆ ในอาร&เรย&ไดโดยใช อ#น เดKกซ& (index) ในการอางอ# ง เช7น จากตวอย7 า งหากเราตองการอางถJ ง คะแนนของนกศJ ก ษาคนท< > 2 เราจะอางถJ งดวย StudentScore(1) เป4นตน อ#นเดKกซ&ในอาร&เรย&ของ VB .NET จะเร#มท<> 0 เสมอ (เหม?อน C#, C++ และ Java) ดงน@นถาประกาศอาร&เรย&ดวยตวเลข > 99 อาร& เรย&น<@ จะม<จD า นวน 99 + 1 = 100 สมาช# ก โดย StudentScore(0) จะหมายถJง สมาช#ก แรกของอาร& เรย& (คะแนนของ นกศJกษาคนท<> 1), StudentScore(1) จะหมายถJงสมาช#กท<> 2 ของอาร&เรย& (คะแนนของนกศJกษาคนท<> 2) และ StudentScore(99) จะหมายถJงสมาช#กท<> 100 ของอาร&เรย& (คะแนนของนกศJกษาคนท<> 100) -1-
  • 2. VB .NET 2005 By Warawut Khangkhan การใชตวแปรชน#ดอาร&เรย& (Array) ใน VB.NET 2005 express Edition อารเรยหลายมต (Multidimensional Array) จากตวอย7างขางตน ตวแปร StudentScore เป4นอาร&เรย&ท<>สามารถเกKบคะแนนของนกศJกษาแต7ละคนไดเพ<ยงว#ชาเด<ยว เท7าน@น เร<ยกว7าเป4นอาร&เรย&ม#ต#เด<ยว (One Dimensional Array) แต7ในบางคร@งเราอาจจDาเป4นตองจดเกKบขอม;ลท<>ม<หลายม#ต# เช7น เกKบคะแนนท6ก ๆ ว#ชาของนกศJกษาแต7ละคนเอาไวเพ?>อค#ดเกรดเฉล<>ย เป4นตน ว#ธ<หนJ>งท<>ทDาไดกKค?อ การใชอาร&เรย&หลายม#ต# (Multidimensional Array) การประกาศตวแปรอาร&เรย&หลายม#ต#จะม<ร;ปแบบคลายกบการประกาศอาร&เรย&ม#ต#เด<ยว เช7น ถาเราตองการประกาศ ตวแปรอาร&เรย&ช?>อ StudentScore ใหสามารถจดเกKบคะแนนท@ง 5 ว#ชา ไดแก7 คณ#ตศาสตร&, ว#ทยาศาสตร&, สงคมศาสตร&, ภาษา ไทย และภาษาองกฤษ ของนกศJกษาจDานวน 100 คนไว จะตองประกาศ ดงน<@ Dim StudentScore(99, 4) As Short 'ประกาศอาร&เรย& 2 ม#ต# ขนาด 100 x 5 ตวอย7างขางตนเป4นการประกาศอาร&เรย& 2 ม#ต# ขนาด 100 x 5 (รวม 500 สมาช#ก) โดยอ#นเดKกซ&ต วแรกใชอางถJง นกศJกษาแต7ละคน ส7วนอ#นเดKกซ&ตวท<>สองใชอางถJงว#ชาต7าง ๆ (0, 1, 2, 3, 4 ใชแทนคณ#ศาสตร&, ว#ทยาศาสตร&, สงคมศาสตร&, ภาษาไทย และภาษาองกฤษ ตามลDาดบ) ตวอย7างต7อไปจะเป4นการประกาศตวแปรอาร&เรย& 3 ม#ต# ขนาด 9 x 5 x 3 (รวม 135 สมาช#ก) และอาร&เรย& 4 ม#ต# ขนาด 21 x 11 x 51 x 3 (รวม 35,343 สมาช#ก) ตามลDาดบ Dim Arr3Dimension(8, 4, 2) As String 'อาร&เรย& 3 ม#ต# ขนาด 9 x 5 x 3 Dim Arr4Dimension(20, 10, 50, 2) As Integer 'อาร&เรย& 4 ม#ต# ขนาด 21 x 11 x 51 x 3 เราสามารถกDาหนดค7าเร#มตนและขอบเขตของตวแปรอาร&เรย& ไดเช7นเด<ยวกบตวแปรปกต# ดงน<@ > [ Dim | Private | Public | Static ] <ชอตวแปรอารเรย> (<ขนาดของม)ตแรก>, ) <ขนาดของม)ต)ท- 2>, ..., <ขนาดของม)ต)ท- n>) As <ชน)ดข5อม6ล> = <Expression> เช7น Dim Arr1(4) As Short = {50, 60, 0, 3, 7} 'อาร&เรย& 1 ม#ต# ขนาด 5 สมาช#ก 'ม<ค7าเร#มตน 50, 60, 0, 3 และ 7 > เราสามารถเคล< ยร&ค 7 าท6 ก ๆ สมาช# ก ของอาร& เ รย& ให เป4 นค7 า เร# > มต น (ขJ@ น อย; 7ก บชน# ดข อม; ล ) ได โดยใชคD าส> ง Erase <ช?ออาร&เรย&> เช7น > Erase StudentScore 'เป4นการเคล<ยร&คะแนนของนกศJกษาท6กคนใหเป4น 0 -2-
  • 3. VB .NET 2005 By Warawut Khangkhan การใชตวแปรชน#ดอาร&เรย& (Array) ใน VB.NET 2005 express Edition ไดนามกอารเรย (Dynmic Array) ในบางคร@งเราไม7สามารถร;ขนาดท<>แน7นอนของอาร&เรย&ได เช7นถาตองการเกKบช?>อหนงส?อท@งหมดในหองสม6ด ซJ>งเรายง ไม7ร;จDานวนหนงส?อท<แน7นอนในช7วงเข<ยนโปรแกรม กKจะทDาใหเราไม7สามารถกDาหนดขนาดท<แน7นอนของอาร&เรย&ได ทางออกง7าย ๆ > > ของปsญหาน<@ค?อ เราอาจกDาหนดขนาดของอาร&เรย&เผ?>อไวมาก ๆ แต7การกDาหนดขนาดอาร&เรย&ใหญ7เก#นความจDาเป4นจะทDาใหส#@น เปล?องเน?@อท<หน7วยความจDาโดยใช7เหต6 นอกจากน<@ยงทDาใหโปรแกรมของเราไม7ม<ความย?ดหย6นเท7าท<ควรดวย > 7 > ว#ธ<ท<>เหมาะสมกว7า ค?อ การใชไดนาม#กอาร&เรย& (Dynamic Array) ซJ>งหมายถJง อาร&เรย&ท<>เราสามารถเปล<>ยนแปลงขนาด ไดในขณะรนโปรแกรม การประกาศไดนาม#กอาร&เรย&ม<ร;ปแบบดงน<@ Dim <ชอตวแปรอารเรย>( ) As <ชน)ดของข5อม6ล> เช7นถาหากตองการกDาหนดไดนาม#กอาร&เรย&เพ?>อเกKบคะแนนสอบของนกศJกษา เราอาจประกาศว7า Dim StudentScore( ) As Short 'ประกาศอาร&เรย& 1 ม#ต# เป4นไดนาม#กอาร&เรย& 'ม<ชน#ดขอม;ลเป4น Short หลงจากน@นเม?อทราบจDานวนขอม;ลท<แน7นอน เราสามารถเปล<>ยนแปลงขนาดของอาร&เรย&ไดโดยใชคDาส>ง Redim เช7น ถา > > ต7อมาทราบว7านกศJกษาม<จDานวนท@งส#@น 50 คน เราสามารถใชคDาส>งต7อไปน<@เพ?>อกDาหนดใหตวแปรอาร&เรย&ดงกล7าวม<ขนาด 50 สมาช#ก Redim StudentScore(49) As Short 'กDาหนดขนาดของอาร&เรย&ใหม<ขนาด 50 สมาช#ก อย7า งไรกKด < เราควรเปล<> ย นแปลงขนาดของอาร&เ รย&ด วยความระมดระวง เพราะถาหากม<ก ารจดเกK บขอม; ล ไวใน อาร&เรย&แลว การลดขนาดอาร&เรย&ใหเลKกลงจะทDาใหขอม;ลบางส7วนส;ญหายไป หมายเหต8 เพ?>อปwองกนไม7ใหขอม;ลท<>อย;7ในอาร&เรย&ส;ญหาย เราสามารถใชคDาส>ง Redim ร7วมกบออปช>น (Option) Preserve ได เช7น Redim Preserve StudentScore(49) As Short -3-