Properties in C#
โซเฟีย มาร์ติลา 650710214
ก่อนที่จะพูดถึงเรื่องคุณสมบัติ เรามาดูก่อนว่าทำไมแนวคิดเรื่องคุณสมบัติจึงเข้ามาอยู่ใน C# เหตุผลมีอยู่สองประการ:
หากสมาชิกของคลาสเป็นแบบส่วนตัว คลาสอื่นใน C# จะสามารถอ่าน เขียน หรือคำนวณค่าของฟิลด์นั้นได้อย่างไร
หากสมาชิกของคลาสเป็นสาธารณะ คลาสอื่นก็อาจใช้สมาชิกนั้นในทางที่ผิดได้
ตัวอย่าง:
c#
เอาท์พุต:
คำอธิบาย:จากภาพด้านบน จะเห็นว่าสมาชิกสาธารณะของคลาส C1 สามารถเข้าถึงได้โดยคลาส C2 และการใช้อ็อบเจ็กต์ "obj" ของ C1 สามารถให้ค่าแก่สมาชิกได้ เช่น ชื่อจะได้รับค่าเป็น null แต่เราไม่ต้องการให้ค่านี้เป็นค่าว่าง C2 ไม่สามารถให้ค่าแก่สมาชิก "marks" ได้เนื่องจาก C1 เป็นแบบส่วนตัว เพื่อทดสอบการเข้าถึงสมาชิกแบบส่วนตัว ให้ลบคำอธิบายและลองเรียกใช้งาน จากนั้นจะเห็นว่าคอมไพเลอร์จะแสดงข้อผิดพลาด ภาษาการเขียนโปรแกรมที่ไม่มีคุณสมบัติ ให้ใช้เมธอด getter และ setter เพื่อจัดเตรียมกลไกการเข้าถึงดังกล่าว
การใช้คุณสมบัติ
คุณสมบัติเป็นประเภทพิเศษของสมาชิกคลาสที่ให้กลไกที่ยืดหยุ่นในการอ่าน เขียน หรือคำนวณค่าของฟิลด์ส่วนตัว คุณสมบัติสามารถใช้ได้เหมือนกับว่าเป็นสมาชิกข้อมูลสาธารณะ แต่จริงๆ แล้วเป็นเมธอดพิเศษที่เรียกว่า ตัวเข้าถึง ซึ่งทำให้สามารถเข้าถึงข้อมูลได้ง่ายและช่วยส่งเสริมความยืดหยุ่นและความปลอดภัยของเมธอด การห่อหุ้มและซ่อนข้อมูลยังทำได้โดยใช้คุณสมบัติ โดยใช้เมธอดที่กำหนดไว้ล่วงหน้า ได้แก่ เมธอด "get" และ "set" ซึ่งช่วยในการเข้าถึงและแก้ไขคุณสมบัติ ตัวเข้าถึง:บล็อกของ "set" และ "get" เรียกว่า "ตัวเข้าถึง" การจำกัดการเข้าถึงคุณสมบัติถือเป็นสิ่งสำคัญมาก ตัวเข้าถึงมีสองประเภท ได้แก่ ตัวเข้าถึง get และตัวเข้าถึง set มีคุณสมบัติประเภทต่างๆ ขึ้นอยู่กับตัวเข้าถึง "get" และ "set":
คุณสมบัติการอ่านและเขียน:เมื่อคุณสมบัติมีทั้งวิธีการรับและตั้งค่า
คุณสมบัติแบบอ่านอย่างเดียว:เมื่อคุณสมบัติมีวิธีการรับเท่านั้น
คุณสมบัติเขียนเฉพาะ:เมื่อคุณสมบัติมีวิธีการที่กำหนดไว้เท่านั้น
คุณสมบัติที่ใช้งานโดยอัตโนมัติ:เมื่อไม่มีตรรกะเพิ่มเติมในตัวเข้าถึงคุณสมบัติและมีการแนะนำใน C# 3.0
ความทันสมัย: C# มีการพัฒนาอย่างต่อเนื่อง มีฟีเจอร์ใหม่ๆ ที่รองรับเทคโนโลยีสมัยใหม่ เช่น async/await, LINQ, generics
ประสิทธิภาพสูง: C# มีประสิทธิภาพใกล้เคียงกับ C++ แต่เขียนโค้ดได้ง่ายกว่า
ความปลอดภัย: มีระบบการจัดการหน่วยความจำอัตโนมัติ ช่วยลดความเสี่ยงในการเกิดข้อผิดพลาด
ครอบคลุม: สามารถใช้พัฒนาแอปพลิเคชันได้หลากหลายประเภท ทั้ง desktop, web, mobile, game
จุดเด่นของ C# เมื่อเทียบกับภาษาอื่นๆ
วัตถุประสงค์หลัก
พัฒนาแอปพลิเคชัน Windows, .NET, เกม (Unity), เว็บแอปพลิเคชัน
พัฒนาแอปพลิเคชัน Android, เซิร์ฟเวอร์, เว็บแอปพลิเคชัน
พัฒนาซอฟต์แวร์ระบบปฏิบัติการ, ไดรเวอร์, เกม, แอปพลิเคชันประสิทธิภาพสูง
พัฒนาสคริปต์, วิทยาศาสตร์ข้อมูล, Machine Learning, เว็บแอปพลิเคชัน
การใช้งาน
Object-oriented
Object-oriented
Procedural, Object-oriented
Multi-paradigm (Procedural, Object-oriented, Functional)
การจัดการหน่วยความจำ
Garbage collection
Garbage collection
Manual
Garbage collection
ประสิทธิภาพ
สูง (ใกล้เคียง C++)
สูง
สูงมาก
ปานกลาง
ความง่ายในการเรียนรู้
ปานกลาง
ปานกลาง
ยาก
ง่าย
ชุมชนผู้ใช้
ใหญ่
ใหญ่ที่สุด
ใหญ่
ใหญ่ที่สุด
เครื่องมือสนับสนุน
Visual Studio (ครบวงจร)
Eclipse, IntelliJ IDEA
หลายตัวเลือก
หลายตัวเลือก
ระบบนิเวศ
.NET Framework, .NET Core
JVM
หลากหลาย
หลากหลาย
การเปรียบเทียบคุณสมบัติเด่น
C# เป็นภาษาโปรแกรมที่พัฒนาโดย Microsoft มีจุดเด่นในเรื่องของความทันสมัย การใช้งานที่หลากหลาย และการผสมผสานคุณสมบัติที่ดีของภาษาอื่นๆ มาไว้ด้วยกัน
Link video
Slides
References
Properties c# คืออะไร
https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/properties
https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/
https://www.geeksforgeeks.org/c-sharp-properties/
https://www.javatpoint.com/c-sharp-properties
https://www.w3schools.com/cs/cs_properties.php
ความแตกต่างของแต่ละภาษา
https://expert-programming-tutor.com/tutorial/article/KCP004006001_Csharp_VS_Python.php
-https://thaioop.wordpress.com/2006/11/23/%E0%B8%95%E0%B8%AD%E0%B8%99-12-%E0%B9%80%E0%B8%9B%E0%B8%A3%E0%B8%B5%E0%B8%A2%E0%B8%9A%E0%B9%80%E0%B8%97%E0%B8%B5%E0%B8%A2%E0%B8%9A%E0%B8%A0%E0%B8%B2%E0%B8%A9%E0%B8%B2-c-%E0%B8%81%E0%B8%B1%E0%B8%9A/
-เปรียบเทียบกัน
เอกสารอย่างเป็นทางการของ Microsoft: https://docs.microsoft.com/en-us/dotnet/csharp/
C# Corner: https://www.c-sharpcorner.com/
Stack Overflow: https://stackoverflow.com/questions/tagged/c%23
Last updated