ในบทนี้ คุณจะได้เรียนรู้เกี่ยวกับโครงสร้างข้อมูลในภาษา C#
ยกตัวอย่างเช่น เราต้องการเก็บข้อมูลของเมื่อง โดยเมื่อแต่ละเมืองก็จะมีข้อมูลที่แยกย่อยลงไปอีก เช่น ชื่อ ประเทศ และจำนวนประชากร ดังนั้นเราจะใช้โครงสร้างข้อมูลซึ่งจะง่ายในการเก็บ สำหรับ struct นั้นสมาชิกทุกตัวจะต้องมี access specifier เป็น public เสมอ
ในบทนี้คุณได้เรียนรู้ในการสร้างและการใช้งานโครงสร้างข้อมูลในภาษา C# และการนำไปใช้กับอาเรย์ และเมธอดในโครงสร้างข้อมูล
โครงสร้างข้อมูล คืออะไร
โครง สร้างข้อมูล (Struct) เป็นตัวแปรที่ใช้สำหรับเก็บค่ามากกว่า 1 ค่าในตัวแปรเดียว โครงสร้างข้อมูลนั้นคล้ายคลึงกับคลาส แต่ว่ามันจะม่สามารถสืบทอดได้ รูปแบบการประกาศโครงสร้างข้อมูล มีดังนี้struct Name { // struct members }ในการประกาศโครงสร้างข้อมูล นั้นจะใช้คำสั่ง
struct
และ Name
คือชื่อของโครงสร้างข้อมูลที่ประกาศขึ้น
สมาชิกของโครงสร้างข้อมูลนั้นจะมีสองแบบเช่นเดียวกันกับคลาสคือตัวแปรและเมธ
อด ตัวแปรสามารถเป็นได้ทั้งตัวแปรแบบ Value และ Reference
มาดูตัวอย่างในกรณีที่เราจะใช้โครงสร้างข้อมูลยกตัวอย่างเช่น เราต้องการเก็บข้อมูลของเมื่อง โดยเมื่อแต่ละเมืองก็จะมีข้อมูลที่แยกย่อยลงไปอีก เช่น ชื่อ ประเทศ และจำนวนประชากร ดังนั้นเราจะใช้โครงสร้างข้อมูลซึ่งจะง่ายในการเก็บ สำหรับ struct นั้นสมาชิกทุกตัวจะต้องมี access specifier เป็น public เสมอ
using System; struct City { public string name; public string contry; public int population; } class StructsExample { static void Main(string[] args) { City city1; City city2; city1.name = "New York City";; city1.contry = "United State"; city1.population = 2636735; city2.name = "Kiev"; city2.contry = "Ukraine"; city2.population = 2900920; Console.WriteLine("Details of city 1"); Console.WriteLine("Name = " + city1.name); Console.WriteLine("Contry = " + city1.contry); Console.WriteLine("Population = " + city1.population); Console.WriteLine("\nDetails of city 2"); Console.WriteLine("City Name = " + city2.name); Console.WriteLine("Contry = " + city2.contry); Console.WriteLine("Population = " + city2.population); Console.ReadKey(); } }จาก ตัวอย่างเราได้สร้างโครงสร้างข้อมูลที่มีชื่อว่า City ขึ้นมา และเก็บข้อมูลประเภทต่างๆ ของมัน ในการเข้าถึงสมาชิกของ struct นั้นจะใช้เครืองหมายจุด (.) ในการสร้างตัวแปรสำหรับโครงสร้างนี้นั้น ก็สร้างโดยใช้คำสั่งต่อไปนี้
City city1; City city2;คุณ จะสังเกตุว่ามันคล้ายๆ การสร้างตัวแปรตัวไป เพียงแค่ City นั้นเป็นตัวแปรชนิดออบเจ็คเท่านั้นเอง แต่มันไม่ได้เป็นออบเจ็คในรูปแบบ OOP นอกจากนี้โครงสร้างข้อมูลยังสามารถประกาศเป็นแบบอาเรย์ได้เช่นกัน
Array of structure
เรา สามารถสร้างตัวแปรอาเรย์ให้กับโครงสร้างข้อมูลได้เหมือนตัวแปรทั่วไป และสามารถสร้างได้ทั้งอาเรย์ทั่วไปหรือ Jagged อาเรย์ มาดูตัวอย่างการสร้างอาเรย์กับโครงสร้างข้อมูลusing System; struct City { public string name; public string contry; public int population; } class StructsExample { static void Main(string[] args) { City[] city = new City[2]; city[0].name = "New York City";; city[0].contry = "United State"; city[0].population = 2636735; city[1].name = "Kiev"; city[1].contry = "Ukraine"; city[1].population = 2900920; Console.WriteLine("Details of city 1"); Console.WriteLine("Name = " + city[0].name); Console.WriteLine("Contry = " + city[0].contry); Console.WriteLine("Population = " + city[0].population); Console.WriteLine("\nDetails of city 2"); Console.WriteLine("City Name = " + city[1].name); Console.WriteLine("Contry = " + city[1].contry); Console.WriteLine("Population = " + city[1].population); Console.ReadKey(); } }เรา ได้ใช้ตัวอย่างก่อนหน้านำมาสร้างเป็นแบบอาเรย์ ที่มีขนาดเท่ากับสอง ซึ่งจากสองตัวอย่างก่อนหน้านั้นจะได้ผลลัพธ์ที่เหมือนกันคือดังข้างล่างนี้
Details of city 1 Name = New York City Contry = United State Population = 2636735 Details of city 2 City Name = Kiev Contry = Ukraine Population = 2900920
New keyword และเมธอด
เหมือน ที่ได้กล่าวไปแล้วก่อนหน้านี้ว่า struct สามารถมี constructor และเมธอดได้เช่นกัน ในการสร้าง struct ที่มี constructor นั้นจะใช้คำสั่ง new ในการประกาศตัวแปรให้กับ struct มาดูตัวอย่างของโครงสร้างข้อมูลต่อไปนี้using System; struct City { public string name; public string contry; public int population; public float area; public City(string name, string contry, int population, float area) { this.name = name; this.contry = contry; this.population = population; this.area = area; } public float getDensity () { return (float) population / area; } } class StructsExample { static void Main(string[] args) { City city = new City("New York City", "United State", 2636735, 468.9F); Console.WriteLine("Name = " + city.name); Console.WriteLine("Contry = " + city.contry); Console.WriteLine("Population = " + city.population); Console.WriteLine("Area = " + city.area + "sq mi"); Console.WriteLine("Density = " + city.getDensity() + " people/sq mi"); Console.ReadKey(); } }จาก ตัวอย่างเราได้ประกาศ Constructor สำหรับ struct โดยมันจะมีชื่อที่เหมือนกัน ใน Construct นั้นจะต้องกำหนดค่าให้กับสมาชิกทุกตัวเสมอ และเมื่อสร้างตัวแปรของ struct จะใช้คำสั่ง
new
และมีเมธอด getDensity ซึ่งการเรียกใช้งานก็จะเหมือนกับคลาส Name = New York City Contry = United State Population = 2636735 Area = 468.9sq mi Density = 5623.235 people/sq miและนี่คือผลลัพธ์ของโปรแกรม
ในบทนี้คุณได้เรียนรู้ในการสร้างและการใช้งานโครงสร้างข้อมูลในภาษา C# และการนำไปใช้กับอาเรย์ และเมธอดในโครงสร้างข้อมูล
ไม่มีความคิดเห็น:
แสดงความคิดเห็น