บทความ Web .NET และ Programming

มีอะไรใหม่ใน .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 ด้วย

มีอะไรใหม่ใน .NET Core 2 และ C# 7 : ตัวกระทำ is กับ คุณสมบัติใหม่ในคำสั่ง switch และ Ref local
เริ่มในภาษาC# เวอร์ชั่น 7.0 ขึ้นไปตัวกระทำ is มีความสามารถเพิ่มจากเดิมเพื่อใช้ในงานตรวจสอบรูปแบบที่ซับซ้อนได้ดีขึ้นกว่าเดิม ตัวกระทำ is ใช้หาชนิดของtypeเพื่อตรวจสอบความเข้ากันได้ขณะrunโปรแกรม มันทำหน้าที่ตรวจว่า objectหรือผลลัพธ์จากนิพจน์สามารถแปลงไปเป็นชนิดข้อมูลที่กำหนดได้หรือไม่ มีsyntaxอย่างที่เห็นในรูปที่ 1 บรรทัด 3

ข้อดีของภาษา C# เมื่อเทียบกับภาษาอื่น ๆ ตอนที่ 10
ข้อดีของภาษาซีชาร์ปที่เหนือกว่าภาษาอื่น (อย่างภาษาซี) คือสนับสนุนการเขียนนิพจน์แลมบ์ดาในตัวโดยไม่ต้องเรียกใช้ส่วนเพิ่มขยายพิเศษใด ๆ นิพจน์แลมบ์ดาคือฟังก์ชันที่ไม่ระบุชื่อ (anonymous function) ที่เราสามารถนำมาใช้สร้างเดลลีเกตหรือเอ็กซ์เพรสชันทรี (expression tree) ได้ เราสามารถใช้นิพจน์แลมบ์ดาเพื่อเขียนฟังก์ชันท้องถิ่นเพื่อใช้เป็นอาร์กิวเมนต์ของฟังก์ชันและใช้เป็นค่าส่งกลับของฟังก์ชันก็ได้ นิพจน์แลมบ์ดาจะมีประโยชน์เป็นพิเศษเมื่อเราเขียนนิพจน์เพื่อสืบค้นข้อมูลด้วยภาษา LINQ

ข้อดีของภาษา C# เมื่อเทียบกับภาษาอื่น ๆ ตอนที่ 9
เมธอดเสริม (Extension Method) แปลกกว่าเมธอดสมาชิกอื่น ๆ ที่เวลานิยามเราต้องนิยามมันแบบสแตติกเมธอด (static method เมธอดที่เป็นสมาชิกของคลาส ไม่ใช่ของออพเจ็กต์) แต่เวลาเรียกใช้งานเรากลับต้องเรียกใช้งานแบบอินสแตนซ์เมธอด (instance method เมธอดที่เป็นสมาชิกของออพเจ็กต์ ไม่ใช่ของคลาส) พารามิเตอร์ตัวแรกของเมธอดเป็นตัวกำหนดว่าเมธอดนั้นทำงานกับอะไร ในรูปที่ 1 บรรทัดที่ 9 จะเห็นว่ามีคำสั่ง (โมดิไฟเออร์) this ปรากฏอยู่หน้าพารามิเตอร์ คำสั่ง this ทำหน้าที่กำหนดว่าเมธอดนี้ทำงานกับออพเจ็กต์ (ไม่ใช่กับคลาส)

มีอะไรใหม่ใน .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 : สนับสนุนการใช้งาน Tuple
ใน.NET Core 2.0 สนับสนุนภาษา C# version 7.0 ที่มีtypeใหม่คือ “Tuple” (Tuple) และใน.NET Core 2.1 สนับสนุน C# 7.1 สนับสนุนการอ้างTupleแบบ Inferred ที่ช่วยให้การเขียนโค้ดทำได้กระชับขึ้น

ข้อดีของภาษา C# เมื่อเทียบกับภาษาอื่น ๆ ตอนที่ 8
เนื่องจากพอยน์เตอร์เป็นสิ่งมีประโยชน์และน่าสนใจมาก และเป็นข้อดีของภาษาซีชาร์ปที่ภาษาอื่น ๆ ไม่มี (ยกเว้น ซี ซีพลัสพลัสและโก) จึงขอเสนอตัวอย่างการใช้งานพอยน์เตอร์ในภาษาซีชาร์ปเพิ่มเติมต่อจากตอนที่แล้วอีกเล็กน้อย ปัญหาอย่างหนึ่งของการใช้งานพอยน์เตอร์คือ เราจะกระทำกับพื้นที่ในหน่วยความจำโดยตรง และเป็นพื้นที่ ๆ เราจองไว้โดยการประกาศตัวแปร แต่ ตัวเก็บขยะ (garbage collector) อาจนึกว่าเป็นขยะและอาจโยกย้ายหรือเก็บเอาไปทำลายได้ตามใจชอบ โดยเราไม่สามารถกำหนดกฎเกณฑ์อะไรได้

.NET Core 2 C# 7 : การทำงาน .NET Core ร่วมกับ Docker
.NET Core 2.1 ได้รับการปรับปรุงให้ทำงานร่วมกับ Docker ได้ดีขึ้น การใช้ .NET Core ร่วมกับ Docker มีความเหมาะสมหลายอย่าง เพราะความที่ .NET Core มีขนาดเล็กและมีสภาพเบ็ดเสร็จในตัว จึงเหมาะที่จะทำเป็น container ของ Docker

Hybrid App คืออะไร
บทความที่แล้วเราได้พูดถึงการพัฒนาแอพลิเคชั่นด้วย Native App ไปแล้ว โดยจะพบว่า Native App จะต้องความรู้ความสามารถเฉพาะทางค่อนข้างมาก จึงต้องใช้ต้นทุนในการพัฒนาสูงมาก ดังนั้นมีอีกทางเลือกหนึ่งในการพัฒนาแอพลิเคชั่น คือ Hybrid App

Native App คืออะไร
ในปัจจุบัน การพัฒนาแอพลิเคชั่นสำหรับสมาร์ทโฟนและแท็ปเล็ตมีหลากหลายแบบ แบบที่นิยมจะมีอยู่สองแบบคือ Native App และ Hybrid App