Page cover

Method Parameters

นิสิต หนูนวน 650710560

1. Named parameters

Named parameters คือ การส่ง parameters โดยระบุชื่อ parameter ในการส่ง ซึ่งมีข้อดีคือ ไม่ต้องระบุค่าตามลำดับของ parameters ที่กำหนดใน method

Named parameters เป็นสิ่งที่อำนวยความสะดวกในการเขียน Code โดยเฉพาะ method ที่มี parameter จำนวนมาก ทำให้ง่ายต่อการทำความเข้าใจ และลดความสับสนใจการเขียน


1.1 ข้อควรระวัง !!

หากมีการใช้งานร่วมกับ Positional parameters จะต้องส่งค่าของ Positional parameters มาก่อน Named parameters เสมอ


1.2 Example

public class GFG { 
    // addstr มี 3 parameters 
    public static void addstr(string s1, string s2, string s3) 
    { 
        string result = s1 + s2 + s3; 
        Console.WriteLine("Final string is: " + result); 
    } 
    // Main Method 
    static public void Main() 
    { 
        // เรียกใช้ Method โดยใช้ Named parameter ในการส่งค่า
        addstr(s1: "Geeks", s2: "for", s3: "Geeks");                     
    } 
} 

Output

Final string is: GeeksforGeeks

หากใส่ Named parameters ก่อน Positional parameters จะทำให้ compiler แจ้งเตือนข้อผิดพลาด เช่น

ตัวอย่าง

s3: "for" เป็น Named arguments ซึ่งประกาศก่อน "Geeks" ที่เป็น positional argument ทำให้เกิดการแจ้งเตือนข้อผิดพลาดจาก compiler


1.3 ความแตกต่าง

ความแตกต่างของ Named parameters ระหว่าง C, Python และ Java มีดังนี้

C ไม่รองรับการใช้ Named Parameters

ซึ่งในการส่งค่า Parameters จำนวนหลายค่า ต้องแน่ใจว่าจำนวน Parameters ที่ส่ง เท่ากับจำนวน Parameter ใน function และมีการเรียงลำดับค่าที่ถูกต้อง

Output


2. Reference parameters

Reference parameters หรือ Passing by reference ใน C# ใช้ keyword คือ ref เป็นการส่งค่า parameter ไปยัง method โดยการอ้างอิงตัวแปรนั้นในการทำงาน ซึ่งหากมีการเปลี่ยนแปลงค่าใน method จะมีผลต่อตัวแปรนั้นเมื่อส่งค่ากลับไปยังตัวแปรต้นทาง ซึ่งก่อนที่จะใช้งาน จะต้องทำการกำหนดค่าของตัวแปรนั้นก่อน


2.1 ข้อควรระวัง !!


2.2 Example

Output


2.3 ความแตกต่าง

ความแตกต่างของ Reference parameters ระหว่าง C, Python และ Java มีดังนี้

ภาษา C ไม่รองรับการใช้งาน Reference parameters หรือ Passing by reference แต่จะใช้ pointer เข้าถึงตำแหน่งของค่า ซึ่งอาจใช้ชื่อว่า Call by reference, Call by pointers, and Pass by pointers

Output


3. Out Parameters

Out parameters ใน C# ใช้ keyword คือ out เป็นการส่งค่า parameter ไปยัง method โดยการอ้างอิงตัวแปรนั้นในการทำงาน เช่นเดียวกับ reference parameters แต่มีความแตกต่างคือ ต้องมีการกำหนดค่าของตัวแปรภายใน method และไม่จำเป็นต้องกำหนดค่าของตัวแปรเริ่มต้นก่อนใช้งาน เพราะจะไม่มีผลต่อค่าของตัวแปรที่กำหนดใน method

Out Parameters มักใช้งานเมื่อมีการส่งค่ากลับแบบหลายค่า (multiple value)


3.1 Example

Output


3.2 ความแตกต่าง

ความแตกต่างของ Out parameters ระหว่าง C, Python และ Java มีดังนี้

ภาษา C ไม่รองรับการส่ง multiple values จาก function โดยตรง แต่สามารถใช้ "Pass by pointers" ในการรับข้อมูลของตัวแปร จากการใช้ pointer อ้างอิงตำแหน่งของข้อมูล

Output


4. Default or Optional Parameters

Optional Parameters คือ parameter ที่มีการกำหนดค่า default value ไว้ใน method ซึ่งหากเรียกใช้ method และส่ง parameter โดยไม่ระบุค่าของตัวแปรที่เป็น Optional parameter ระบบจะนำค่า default value ที่กำหนดใน method มาใช้


4.1 ข้อควรระวัง !!


4.2 Example

Output


4.3 ความแตกต่าง

ความแตกต่างของ Optional parameters ระหว่าง C, Python และ Java มีดังนี้

ภาษา C ไม่รองรับการใช้ Optional parameter แต่สามารถใช้ การทำ null pointer ในการตรวจสอบการส่งค่า parameter

Output :


5. Dynamic Parameters

Dynamic parameters คือ parameter ที่กำหนดขึ้นโดยใช้ keyword dynamic ทำให้ไม่ต้องระบุชนิดของตัวแปร เนื่องจาก Compiler จะไม่มีการตรวจสอบชนิดของตัวแปรในขณะ compile-time แต่จะรับชนิดของตัวแปรในขณะ run time


5.1 Example

Output


5.2 ความแตกต่าง

ความแตกต่างของ Dynamic parameters ระหว่าง C, Python และ Java มีดังนี้

C เป็นภาษาแบบ Static typing และไม่มี keyword สำหรับการเปลี่ยนแปลงค่า (dynamic) แบบ C#


6. Value Parameters

Value parameters คือ parameter ที่ส่งข้อมูลหรือค่าของตัวแปรที่กำหนดขึ้น ไปยัง method ซึ่งหากมีการเปลี่ยนแปลงค่าของตัวแปรใน method จะไม่ส่งผลต่อค่าของตัวแปรต้นทางที่เรียกใช้


6.1 Example

Output


6.2 ความแตกต่าง

ความแตกต่างของ Value parameters ระหว่าง C, Python และ Java มีดังนี้

ภาษา C รองรับ Value parameters ในชื่อ Pass by value

Output :


7. Params

keyword params เป็นการกำหนดให้สามารถส่งค่า argument ได้จำนวนหลายค่าตามที่ต้องการโดยไม่ต้องกำหนดจำนวนของ parameters ก่อน ซึ่งจะเป็นประโยชน์เมื่อไม่ทราบจำนวนของ argument ที่ต้องการจะส่ง


7.1 ข้อควรระวัง !!


7.1 Example

Output


7.2 ความแตกต่าง

ความแตกต่างของ Params ระหว่าง C, Python และ Java มีดังนี้

ภาษา C ใช้ Variadic function สำหรับการรับ argument ที่ไม่จำกัดจำนวน ซึ่งฟังก์ชันที่ใช้บ่อยที่สุดอย่าง printf() , scanf() ก็เป็น Variadic function เนื่องจากสามารถส่งจำนวน argument ได้ตามต้องการ

โดยจะต้องทำการเพิ่ม #include <stdarg.h> ไว้บน header และ ต้องกำหนด fixed argument อย่างน้อย 1 ค่า แล้วตามด้วย (...) เพื่อให้ compiler เข้าใจว่า สามารถรับ arguments ที่ไม่จำกัดจำนวนได้

Output


Video Presentation


Slide Presentation


Resource

Key resource

Additional Resources


Last updated