เมื่อเรียกเมธอดที่มีพารามิเตอร์ ต้องส่งผ่านพารามิเตอร์ด้วยหนึ่งใน 3 วิธี:
1. Reference Parameters (พารามิเตอร์แบบอ้างอิง)
คัดลอกการอ้างอิงไปยังตำแหน่งหน่วยความจำของอาร์กิวเมนต์เข้าไปในพารามิเตอร์ การเปลี่ยนแปลงพารามิเตอร์จะส่งผลต่ออาร์กิวเมนต์ต้นฉบับ
2. Value Parameters (พารามิเตอร์แบบค่า)
คัดลอกค่าจริงของอาร์กิวเมนต์เข้าไปในพารามิเตอร์ การเปลี่ยนแปลงภายในฟังก์ชันไม่ส่งผลต่ออาร์กิวเมนต์
ตัวอย่าง Value Parameters
using System;
namespace CalculatorApplication {
class NumberManipulator {
public void swap(int x, int y) {
int temp = x;
x = y;
y = temp;
}
static void Main(string[] args) {
NumberManipulator n = new NumberManipulator();
int a = 7, b = 10;
Console.WriteLine("Before swap, value of a : {0}", a);
Console.WriteLine("Before swap, value of b : {0}", b);
n.swap(a, b);
Console.WriteLine("After swap, value of a : {0}", a);
Console.WriteLine("After swap, value of b : {0}", b);
Console.ReadLine();
}
}
}
ผลลัพธ์
Before swap, value of a : 7 Before swap, value of b : 10 After swap, value of a : 7 After swap, value of b : 10
สังเกต: ค่า a และ b ไม่เปลี่ยน เพราะเป็น Value Parameters (ส่งค่าไป ไม่ส่ง reference)