บทความ Web .NET และ Programming
ข้อดีของภาษา 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
ข้อดีของภาษา C# เมื่อเทียบกับภาษาอื่น ๆ ตอนที่ 7
ในภาษาซีชาร์ปเราสามารถกำหนดหน้าที่ใหม่ให้แก่ตัวกระทำ (Operator โอเปอร์เรเตอร์) เพื่อให้มันทำงานแตกต่างไปจากการทำงานปรกติที่ถูกกำหนดไว้โดยปริยายได้ เรียกการทำเช่นนี้ว่าโอเปอร์เรเตอร์โอเวอร์โหลดดิง (operator overloading) ภาษาจาวาไม่มีคุณสมบัตินี้ และเราจะทำเช่นนี้ในภาษาซีมาตรฐานก็ไม่ได้เหมือนกัน
ข้อดีของภาษา C# เมื่อเทียบกับภาษาอื่น ๆ ตอนที่ 6
ในภาษาซีชาร์ปเราสามารถสั่งให้ตัวแปลภาษาคอมไพล์แบบกำหนดเงื่อนไขได้ (Conditional compilation) โดยใช้ “คำสั่งก่อนการประมวลผล” (preprocessor directives) การทำเช่นนี้อำนวยความสะดวกในการพัฒนา เพราะเราสามารถใส่โค้ดบางอย่างที่จำเป็นต้องใช้ระหว่างการพัฒนา แต่ไม่ต้องการให้โค้ดเหล่านี้ถูกคอมไพล์ในตอนผลิต คุณสมบัตินี้มีข้อดีที่ช่วยให้โค้ดระหว่างพัฒนากับโค้ดหลังพัฒนาเป็นซอร์สโค้ดอันเดียวกันได้ ไม่ต้องทำเป็นสองชุด โดยไบนารีไฟล์หลังพัฒนาจะมีขนาดเล็กกะทัดรัดปราศจากโค้ดที่ไม่เกี่ยวข้องกับการทำงานปะปนอยู่