วิธีการในภาษา C# โดยทั่วไปจะเป็นบล็อกของรหัสหรือข้อความสั่งในโปรแกรมที่ช่วยให้ผู้ใช้สามารถนำรหัสเดิมกลับมาใช้ใหม่ได้ ซึ่งท้ายที่สุดแล้วจะช่วยประหยัดการใช้หน่วยความจำที่มากเกินไป ซึ่งช่วยประหยัดเวลา และที่สำคัญกว่านั้นคือช่วยให้อ่านโค้ดได้ง่ายขึ้น
อาจมีบางสถานการณ์ที่ผู้ใช้ต้องการเรียกใช้เมธอด แต่บางครั้งเมธอดนั้นต้องการอินพุตที่มีคุณค่าเพื่อดำเนินการและทำงานให้เสร็จสิ้น ค่าอินพุตเหล่านี้เรียกว่า พารามิเตอร์ .
พารามิเตอร์สามารถส่งผ่านไปยังเมธอดได้ด้วยวิธีต่อไปนี้ -
-
ค่าพารามิเตอร์
-
พารามิเตอร์อ้างอิง
-
พารามิเตอร์เอาต์พุต
ค่าพารามิเตอร์
พารามิเตอร์ค่าจะคัดลอกค่าจริงของอาร์กิวเมนต์ลงในพารามิเตอร์ที่เป็นทางการของฟังก์ชัน เมื่อตัวแปรอย่างง่ายถูกส่งผ่านเป็นพารามิเตอร์ไปยังเมธอดใดๆ ตัวแปรนั้นจะถูกส่งต่อเป็นค่า ซึ่งหมายความว่าค่าที่มีอยู่โดยตัวแปรที่ส่งผ่านเมื่อพารามิเตอร์ถูกคัดลอกไปยังตัวแปรของวิธีการ และหากภายในวิธีการ ค่าเหล่านี้มีการเปลี่ยนแปลงหรือแก้ไข การเปลี่ยนแปลงจะไม่สะท้อนให้เห็นในตัวแปรที่ส่งผ่านจริง ชนิดข้อมูลดั้งเดิมส่วนใหญ่ เช่น จำนวนเต็ม คู่ บูลีน ฯลฯ จะถูกส่งผ่านโดยค่า
ตัวอย่าง
using System; namespace MyApplication{ public class Program{ public static void Main(){ int x = 5, y = 5; Console.WriteLine($"Value before calling the method. x = {x}, y = {y}"); ValueParamter(x, y); Console.WriteLine($"Value after calling the method. x = {x}, y = {y}"); } public static void ValueParamter(int x, int y){ x = 10; y = 10; int z = x + y; Console.WriteLine($"Sum of x and y = {z}"); } } }
ผลลัพธ์
ผลลัพธ์ของโค้ดด้านบนเป็นดังนี้ &mius;
Value before calling the method. x = 5, y = 5 Sum of x and y = 20 Value after calling the method. x = 5, y = 5
พารามิเตอร์อ้างอิง
พารามิเตอร์อ้างอิงจะคัดลอกการอ้างอิงไปยังตำแหน่งหน่วยความจำของอาร์กิวเมนต์ลงในพารามิเตอร์ที่เป็นทางการ โดยปกติ ออบเจ็กต์ทั้งหมดจะถูกส่งผ่านโดยการอ้างอิงเป็นพารามิเตอร์ของเมธอด วิธีการทำงานบนการอ้างอิงของตัวแปรที่ส่งผ่านในพารามิเตอร์มากกว่าการดำเนินการตามค่าของตัวแปร ส่งผลให้มีการปรับเปลี่ยนตัวแปรในฟังก์ชันการเรียกเมื่อถูกแก้ไขในฟังก์ชันที่เรียกว่า ซึ่งหมายความว่าการเปลี่ยนแปลงที่ทำกับพารามิเตอร์ส่งผลต่ออาร์กิวเมนต์
ตัวอย่าง
using System; namespace MyApplication{ public class Program{ public static void Main(){ int x = 5, y = 5; Console.WriteLine($"Value before calling the method. x = {x}, y = {y}"); RefParamter(ref x, ref y); Console.WriteLine($"Value after calling the method. x = {x}, y = {y}"); } public static void RefParamter(ref int x, ref int y){ x = 10; y = 10; int z = x + y; Console.WriteLine($"Sum of x and y = {z}"); } } }
ผลลัพธ์
ผลลัพธ์ของรหัสข้างต้นเป็นดังนี้ −
Value before calling the method. x = 5, y = 5 Sum of x and y = 20 Value after calling the method. x = 10, y = 10
พารามิเตอร์เอาต์พุต
พารามิเตอร์เอาต์พุตช่วยในการคืนค่ามากกว่าหนึ่งค่า คำสั่ง return สามารถใช้สำหรับการคืนค่าเพียงหนึ่งค่าจากฟังก์ชัน อย่างไรก็ตาม เมื่อใช้พารามิเตอร์เอาต์พุต คุณสามารถคืนค่าสองค่าจากฟังก์ชันได้ ตัวแปรที่ให้มาสำหรับพารามิเตอร์เอาต์พุตไม่จำเป็นต้องกำหนดค่า พารามิเตอร์เอาต์พุตมีประโยชน์อย่างยิ่งเมื่อคุณต้องการคืนค่าจากเมธอดผ่านพารามิเตอร์โดยไม่ต้องกำหนดค่าเริ่มต้นให้กับพารามิเตอร์ พารามิเตอร์เอาต์พุตคล้ายกับพารามิเตอร์อ้างอิง ยกเว้นว่าพารามิเตอร์เหล่านี้ถ่ายโอนข้อมูลออกจากเมธอดแทนที่จะโอนเข้า
ตัวอย่าง
using System; namespace MyApplication{ public class Program{ public static void Main(){ int result; OutParamter(out result); Console.WriteLine($"Result: {result}"); } public static void OutParamter(out int result){ int x = 10, y = 10; result = x + y; } } }
ผลลัพธ์
The output of the above code is as follows: Result: 20