C# Programming

หน้าปกบทความ Record types ใน .NET 5 และ C# 9

Record types ใน .NET 5 และ C# 9

.NET 5.0 มีการปรับปรุงประสิทธิภาพและเพิ่ม Feature ใหม่ๆ สำหรับบทความนี้ขอแนะนำให้รู้จักกับ Records Types ในภาษา C# ซึ่งเป็น Version 9.0 (C# 9)
ภาพหน้าปก บทความ Using statement ใน .NET Core 3 และ C#8

Using statement ใน .NET Core 3 และ C#8

เมื่อเรามีการเขียนคำสั่งในการสร้างอ็อบเจกต์ จะมีการใช้พึ้นที่บนหน่วยความจำในการเก็บค่าต่าง ๆ แต่ปรกติเราไม่จำเป็นต้องทำลายอ็อบเจกต์ เพราะอ็อบเจกต์ส่วนใหญ่จะถูก garbage collector นำไปทำลายโดยอัตโนมัติเมื่อหมดหน้าที่การทำงานแล้ว
รูปหน้าปกบทความ Using directive  ใน .NET Core 3 และ C#8

Using directive ใน .NET Core 3 และ C#8

นอกจากการจะใช้คำสั่ง using เพื่อทำ Using declarations ซึ่งเป็นการใช้กับการประกาศตัวแปรหรือ Object ภายในไฟล์ ซึ่งสามารถอ่านได้ที่บทความ Using declarations ใน .NET Core 3 และ C#8 ภาษา C# ยังมีการใช้คำสั่ง using ในลักษณะอื่นอีกได้แก่ 1. การใช้ using เพื่อการกำหนด namespace ที่ต้องการอ้างถึงเพื่ออำนวยความสะดวกให้ไม่ต้องอ้างถึงคลาสหรือสิ่งต่าง ๆ แบบ fully qualify
Switch Statement with Pattern Matching

มีอะไรใหม่ใน .NET Core 2 และ C# 7 : Pattern Matching ด้วยคำสั่ง Switch

ในภาษา C# เวอร์ชัน 7.0 การตรวจสอบเพื่อการจับคู่รูปแบบ (Pattern Matching: PM) ด้วยคำสั่ง if และ switch ได้รับการพัฒนาให้ดียิ่งขึ้น ยืดหยุ่นกว่าเดิม เขียนโค้ดได้สะดวกขึ้น แต่เดิมการทำ PM ด้วยหลักวัตถุวิธีเราจะสร้างคลาสฐานเป็นแบบ “abstract” จากนั้นจะใช้กรรมวิธีสืบคุณสมบัติเป็นคลาสลูกหลาย ๆ แบบตามต้องการ ส่วนเก็บข้อมูลและโค้ดเพื่อจัดการข้อมูลจะถูกผนึกไว้เป็นหน่วยเดียวกัน ซึ่งเป็นการ “เชื่อมแน่น” (tight coupling) ในกรณีที่เราต้องการการ “เชื่อมหลวม” (loose coupling) เราจะแยก ส่วนเก็บข้อมูลและโค้ดเพื่อจัดการข้อมูลออกจากกัน จากนั้นทำ PM ด้วยคำสั่ง if และ switch ซึ่งหากมีรูปแบบจำนวนวนมาก โค้ดจะยืดยาวเยิ่นเย้อ
การ Deconstruct Tuple และ Type อื่น ๆ

มีอะไรใหม่ใน .NET Core 2 และ C# 7 : การ Deconstruct Tuple และ Type อื่น ๆ

ภาษาC# 7.0 ขึ้นไปสนับสนุนการประกาศตัวแปรแบบ discard ซึ่งเป็นตัวแปรแบบเขียนได้เท่านั้น (read-only) โดยที่ท่านจะประกาศตัวแปรแบบนี้กี่ตัวก็ได้ แต่ทุกตัวจะมีชื่อเดียวกันหมดคือ _ (เครื่องหมายขีดเส้นใต้หรือ underscore) ประโยชน์ของตัวแปรแบบ discard คือการนำไปใช้กับTuple (Tuple อ่านรายละเอียดเรื่องTupleได้จากบทความตอนก่อนหน้านี้) เพราะการรับค่าส่งกลับจากmethodที่ส่งค่ากลับเป็นTuple หรือการเรียกใช้methodที่มีพารามิเตอร์แบบ out เราจะต้องประกาศตัวแปรไว้รับค่า ซึ่งบ่อยครั้งที่เราไม่ต้องการใช้ค่าจากตัวแปรเหล่านั้น แต่ก็จำต้องประกาศ ทำให้โค้ดรกรุงรังโดยเปล่าประโยชน์