Params in C#
เสฏฐนันท์ พจมานวิมล 650710099
Params ในภาษา C# หมายถึง คำสั่งที่ใช้ในการประกาศอาร์กิวเมนต์ในรูปแบบของอาร์เรย์ ซึ่งช่วยให้คุณสามารถส่งค่าหลายค่าผ่านไปยังเมธอด โดยไม่จำเป็นต้องกำหนดจำนวนของอาร์กิวเมนต์ล่วงหน้า คำสั่งนี้จะใช้เมื่อคุณไม่แน่ใจว่าผู้ใช้จะส่งค่าเข้ามากี่ค่า และต้องการความยืดหยุ่นในการรับค่าเหล่านั้น
อย่างเช่น
สิ่งสำคัญเกี่ยวกับ Params Keyword
Params มีประโยชน์เมื่อโปรแกรมเมอร์ไม่มีความรู้ล่วงหน้าเกี่ยวกับจำนวนพารามิเตอร์ที่จะใช้
อนุญาตให้ใช้คำสำคัญ Params ได้เพียงหนึ่งคำ และจะไม่อนุญาตให้มี Params เพิ่มเติมในการประกาศฟังก์ชันหลัง params
ความยาวของ Params จะเป็นศูนย์หากไม่มีการส่งอาร์กิวเมนต์
ข้อดีของ Params
Params
Flexibility
Params
ช่วยให้เมธอดรับอาร์กิวเมนต์ได้ไม่จำกัดจำนวนReadability ทำให้โค้ดกระชับและเข้าใจง่ายขึ้น
Maintenance ลดโค้ดซ้ำและข้อผิดพลาด ทำให้ดูแลโค้ดง่ายขึ้น
ข้อเสียของ Params
Params
Performance
Params
อาจทำให้โปรแกรมช้าลงเล็กน้อยLimited to one array ใช้ได้แค่ array หนึ่งชุดต่อเมธอด
Type restriction ใช้ได้กับ array มิติเดียวเท่านั้น
ในบางครั้ง ในขณะที่ประกาศเมธอด คุณไม่แน่ใจเกี่ยวกับจํานวนอาร์กิวเมนต์ที่ส่งผ่านเป็นพารามิเตอร์ อาร์เรย์พารามิเตอร์ C#
Example
โค้ดนี้เป็นโปรแกรมตัวอย่างในภาษา C# ที่แสดงวิธีการใช้ params
เพื่อรับอาร์กิวเมนต์ที่มีความยาวไม่จำกัดในฟังก์ชัน Show()
ภายใต้ namespace AccessSpecifiers
Example 2
โค้ดนี้เป็นโปรแกรมในภาษา C# ที่ใช้ params
เพื่อรับอาร์กิวเมนต์ที่มีจำนวนและประเภทต่าง ๆ แบบไม่จำกัดในฟังก์ชัน Show()
รับอาร์กิวเมนต์หลายตัวผ่าน params object[] items
ซึ่งทำให้ฟังก์ชันสามารถรับอาร์กิวเมนต์หลายชนิดได้ เช่น string, int, double, char เป็นต้น
เปรียบเทียบการใช้ Params ในภาษา C# กับภาษาต่างๆ
จากที่เปรียบเทียบ Code กับภาษาต่างๆแล้ว เมื่อรันโค้ดในแต่ละภาษา จะเห็นว่า output ของโปรแกรมในทุกภาษาแสดงตัวเลข 1 ถึง 5 โดยเรียงตามลำดับที่ส่งเข้าไปในฟังก์ชันที่ใช้ ตามลำดับ
C#: ใช้
params
เพื่อรับอาร์กิวเมนต์หลายตัวJava: ใช้
varargs
ซึ่งรับอาร์กิวเมนต์ไม่จำกัดในรูปแบบของ arrayC: ใช้
va_list
,va_start
,va_arg
สำหรับการจัดการอาร์กิวเมนต์หลายตัวPython: ใช้
*args
เพื่อรับอาร์กิวเมนต์ไม่จำกัด
ซึ่งทุกภาษามีแนวทางเฉพาะในการรับจำนวนอาร์กิวเมนต์ที่ไม่จำกัด ที่ช่วยให้ฟังก์ชันหรือเมธอดมีความยืดหยุ่นมากขึ้นในแง่ของจำนวนอินพุตที่รองรับ
Video Presentation
Slide Presentation
Reference
Last updated