ข้ามไปยังเนื้อหา

บทความ

แบ่งปันความรู้เทคโนโลยี เพื่อ “ขับเคลื่อนประเทศไทย”

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

มีอะไรใหม่ใน .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 ซึ่งหากมีรูปแบบจำนวนวนมาก โค้ดจะยืดยาวเยิ่นเย้อ

.NET Core 2 และ C# 7 : Deconstruct Tuple และ Type อื่นๆ.NET

.NET Core 2 และ C# 7 : Deconstruct Tuple และ Type อื่นๆ

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

.NET Core 2 และ C# 7 : ref return, ref local และ Local Function.NET

.NET Core 2 และ C# 7 : ref return, ref local และ Local Function

คุณสมบัติ ref return เริ่มตั้งแต่C# 7.0 จากนั้นพอมาถึงC# 7.3 ก็เพิ่มคุณสมบัติ ref local เพื่อให้ใช้งานคู่กัน ทำให้เขียนโค้ดฝั่งmethodและฝั่งตัวรับได้สะดวกยิ่งขึ้นไปอีก ปรกตินักเขียนโค้ดอย่างเราจะใช้ตัวกระทำ ref (ความจริงเป็นmodifierแต่เพื่อให้กระชับต่อไปนี้จะเรียกว่าเป็น “คำสั่ง” ) เมื่อต้องการส่ง “ค่าอ้างอิง” ไปเป็นพารามิเตอร์ (คือการส่งค่าไปยังmethodโดยส่งค่าอ้างอิงไป ไม่ได้ส่งค่าของตัวแปรไป) หรือที่เรียกว่า “การผ่านตัวอ้างอิง” (pass by reference) นี่เป็นคุณสมบัติที่มีในC#ตั้งแต่versionแรก แต่มาตอนนี้เราสามารถใช้คำสั่ง ref ในลักษณะอื่น ๆ ได้ด้วย ในตอนที่ผ่านมาผู้เขียนได้พูดถึงการการใช้ ref return ไปแล้วบางส่วน ในบทความตอนนี้จะอธิบายรายละเอียดของ ref return ที่เหลือ และจะต่อด้วยเรื่องคุณสมบัติ ref local ด้วย

ข้อดีของภาษา C# เมื่อเทียบกับภาษาอื่น ๆ ตอนที่ 12.NET

ข้อดีของภาษา C# เมื่อเทียบกับภาษาอื่น ๆ ตอนที่ 12

ในตอนที่ผ่านมาได้พูดถึงข้อดีของภาษาซีชาร์ปที่มีคุณสมบัติ Expression Trees หรือ “ต้นไม้นิพจน์” ซึ่งเป็นข้อดีในภาษาซีชาร์ปที่ไม่พบในภาษาอื่น ๆ หลายภาษาอย่างเช่นภาษาซี หรือในภาษาจาวาสคริปต์ที่มีต้นไม้นิพจน์แบบย่นย่อ ไม่ใช่ต้นไม้นิพจน์เต็มรูปแบบอย่างที่เรากำลังพูดถึงอยู่ในขณะนี้