Để truyền tham chiếu cho biến, dùng từ khóa ref. Tham số tham chiếu (reference parameter) là tham chiếu đến vị trí bộ nhớ của biến. Khi truyền tham số bằng tham chiếu, khác với truyền giá trị, vị trí lưu trữ mới không được tạo cho các tham số này. Khai báo tham số tham chiếu bằng từ khóa ref.
Ví dụ: Hoán đổi hai giá trị dùng ref
using System;
namespace Demo
{
class Program
{
public void Swap(ref int x, ref int y)
{
int temp;
temp = x; // lưu giá trị x
x = y; // gán y vào x
y = temp; // gán temp vào y
}
static void Main(string[] args)
{
Program p = new Program();
int a = 99;
int b = 110;
Console.WriteLine("Before swap, value of a : {0}", a);
Console.WriteLine("Before swap, value of b : {0}", b);
// Gọi hàm hoán đổi
p.Swap(ref a, ref b);
Console.WriteLine("After swap, value of a : {0}", a);
Console.WriteLine("After swap, value of b : {0}", b);
Console.ReadLine();
}
}
}
Kết quả
Before swap, value of a : 99
Before swap, value of b : 110
After swap, value of a : 110
After swap, value of b : 99
Lưu ý: Biến phải được khởi tạo trước khi truyền vào ref. C# cũng có out (bắt buộc gán giá trị trong phương thức) và in (read-only reference, C# 7.2+).