Optional Parameters
ปัญญารัตน์ เกนวิถี 650710566
Optional Parameters:
พารามิเตอร์ในเมธอดที่ไม่จำเป็นต้องส่งค่าผ่านพารามิเตอร์ทุกตัวเมื่อเรียกใช้เมธอดนั้น หากไม่ส่งค่า ระบบจะใช้ค่าที่ถูกกำหนดโดยโปรแกรมเมอร์ (default value) แทน แต่ถ้าหากมีการส่งค่า จะใช้ค่าที่ถูกส่งแทน default value โดยมักใช้ในกรณีที่ต้องการให้เมธอดมีความยืดหยุ่นมากขึ้น
Key Points:
ใช้พารามิเตอร์แบบเลือกได้ใน Method, Constructors, Indexers และ Delegates
มีการกำหนด default value ในส่วนของการประกาศ
default value ต้องเป็นนิพจน์คงที่
ต้องถูกประกาศไว้เป็นพารามิเตอร์ตัวสุดท้าย เพื่อป้องกันความสับสนและความชัดเจนในการเรียกใช้
(ในกรณีที่การใช้ Optional Parameter มากกว่าหนึ่งตัว) ต้องส่งค่าสำหรับ Optional Parameters ที่อยู่ก่อนหน้าทั้งหมดด้วย โดยไม่สามารถมีช่องว่างได้
ตอนที่ควรจะใช้ Optional Parameters:
ใช้เมื่อการทำให้โค้ดอ่านง่ายและสะดวกขึ้น และเมื่อคุณต้องการกำหนดค่า default value สำหรับพารามิเตอร์บางตัวในเมธอด แต่ยังต้องการให้มีความยืดหยุ่นในการเรียกใช้เมธอดนั้น
ตอนที่ควรเลี่ยง Optional Parameters:
หากใช้ Optional Parameters ทำให้การเรียกเมธอดมีความกำกวม หรืออ่านได้ยาก ควรเลี่ยง
ควรหลีกเลี่ยงการใช้ Optional Parameters มากเกินไปในเมธอดเดียว หากเลือกจำนวนมากอาจเข้าใจได้ยากและซับซ้อน
หาก Optional Parameters ทำให้เกิดปัญหาที่เกี่ยวกับ Type ควรใช้การโอเวอร์โหลดเมธอดหรือเทคนิคอื่น ๆ เพื่อรักษาความปลอดภัยของ Type
Advantages
เพิ่มประสิทธิภาพของโค้ด เพราะว่าไม่ต้องมีการทำ Overloading Parameters
การเรียกฟังก์ชันที่ยืดหยุ่น
ช่วยเพิ่มความอ่านโค้ดให้ง่ายขึ้น
ช่วยให้สามารถใช้งานเมธอดได้ดีขึ้น โดยการกำหนดอย่างชัดเจนว่าสิ่งใดเป็นสิ่งจำเป็นสำหรับการทำงาน และสิ่งใดไม่จำเป็น ซึ่งช่วยให้ทราบว่าควรส่งค่าใดบ้างและค่าใดที่ไม่จำเป็นต้องส่ง
Example:
เปรียบเทียบ Java/C/Python
Java
ใน Java ไม่มีการใช้ Optional Parameters ได้โดยตรง แต่สามารถใช้การ Overloading Method
C
ในภาษา C สามารถเลียนแบบ Optional Parameters ได้โดยใช้การ implement functions (ใช้ Pointer) หรือการใช้ variadic functions
Python
สำหรับภาษา Python สามารถใช้ Optional Parameters ได้เหมือนกับ C# แต่มีความยืดหยุ่นมากกว่าในด้านการกำหนด Optional Parameters
VDO Clip:
Presentation:
References:
บทความความหมายของ Optional Parameters:
Microsoft. (2024). Named and Optional Arguments (C# Programming Guide). สืบค้น 5 ตุลาคม 2567, จากhttps://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/named-and-optional-arguments
บทความความหมายของ Optional Parameters:
GeeksforGeeks. (2019). C# | Optional Parameters. สืบค้น 5 ตุลาคม 2567, จากhttps://docs.python.org/3/tutorial/controlflow.html#default-argument-values
บทความตอนที่ควรและหลีกเลี่ยงของ Optional Parameters:
BEN ABT. (2023). When to use optional arguments and parameter defaults in c#. สืบค้น 5 ตุลาคม 2567, จากhttps://medium.com/medialesson/when-to-use-optional-arguments-and-parameter-defaults-in-c-c78ca71bd15e
บทความประโยชน์ของ Optional Parameters:
ByteHide. (2023). Advantages of Using C# Functions with Optional Parameters. สืบค้น 5 ตุลาคม 2567, จากhttps://www.bytehide.com/blog/optional-parameters-csharp
บทความของ Optional Parameters ใน Java:
Mehul Mohan. (2023). What are optional parameters in Java. สืบค้น 5 ตุลาคม 2567, จากhttps://codedamn.com/news/java/what-are-optional-parameters-in-java
บทความของ Optional Parameters ใน C:
Python Software Foundation. (2024). Default Argument Values. สืบค้น 5 ตุลาคม 2567, จากhttps://docs.python.org/3/tutorial/controlflow.html#default-argument-values
บทความของ Optional Parameters ใน Python:
Microsoft. (2021). Arguments. สืบค้น 5 ตุลาคม 2567, จากhttps://learn.microsoft.com/en-us/cpp/c-language/arguments?view=msvc-170
Last updated