Lập trình C#

Cách truyền tham trị, tham chiếu trong C#

Cách truyền tham trị, tham chiếu trong C#
Được viết bởi Minh Hoàng

Series lập trình C#, ngôn ngữ lập trình hiện đại và mạnh mẽ.

Cách truyền tham trị, tham chiếu trong C#

Trong bài này, kiến thức tiếp theo chúng ta sẽ tìm hiểu là cách truyền tham trị, tham chiếu trong C#:

  1. Tham trị, tham chiếu là gì?
  2. Cách sử dụng tham trị, tham chiếu
1. Tham trị, tham chiếu là gì?

Như chúng ta đã biết một biến thì sẽ có giá trịđịa chỉ ô nhớ trên máy tính để lưu giá trị của biến. Khi chúng ta truyền tham số cho một phương thức là:

  • Tham trị: có nghĩa là truyền giá trị của biến. Mọi xử lý tính toán trong phương thức khi kết thúc thì không làm thay đổi giá trị của biến tham số truyền vào.
  • Tham chiếu: có nghĩa là truyền trực tiếp địa chỉ ô nhớ của biến. Chính vì thế mọi tính toán trong phương thức sẽ làm thay đổi giá trị của biến tham số truyền vào khi phương thức kết thúc.
2. Cách sử dụng tham trị, tham chiếu
#1. Cách sử dụng Tham trị
#1. Cách sử dụng Tham trị
[code language=”csharp” highlight=”13,14″] using System;

namespace MinhHoangBlog
{
class Program
{
static void Main(string[] args)
{
// Khai báo 2 số để tìm max
int n1 = 100;
int n2 = 200;

// Truyền 2 biến n1, n2 theo kiểu Tham trị
int max = FindMax( n1, n2 );

Console.WriteLine( "Before n1 = {0}", n1 );
Console.WriteLine( "Before n2 = {0}", n2 );

Console.WriteLine( "Max number of {0}, {1} is {2}", n1, n2, max );

Console.WriteLine( "After n1 = {0}", n1 );
Console.WriteLine( "After n2 = {0}", n2 );

Console.WriteLine( "Gia tri cua 2 bien n1, n2 khong thay doi." );

Console.ReadKey();
}

public static int FindMax(int number1, int number2)
{
int max;
if (number1 > number2)
max = number1;
else
max = number2;
return max;
}
}
}
[/code]

Kết quả chương trình

Kết quả chương trình

#2. Cách sử dụng Tham chiếu
#2. Cách sử dụng Tham chiếu

Với truyền tham chiếu – Chúng ta sẽ sử dụng từ khóa ref hoặc out:

  • Khi dùng ref: biến phải được khởi tạo trước (x = 5), rồi mới truyền cho phương thức.
  • Khi dùng out: biến (x) không cần khởi tạo trước khi truyền vào phương thức. Nhưng bên trong phương thức bắt buộc phải có giá trị gán cho biến (x = 5).
  • Khi gọi và khi khai báo phương thức đều bắt buộc phải có kèm theo ref hoặc out trước tên biến muốn truyền theo kiểu tham chiếu.
[code language=”csharp” highlight=”16,23,31,40″] using System;

namespace MinhHoangBlog
{
class Program
{
static void Main(string[] args)
{
// Khai báo và khởi tạo
int a = 100;
int b = 99;

Console.WriteLine( "Before swap: a = {0}, b = {1}", a, b );

// Truyền 2 biến a, b theo kiểu Tham chiếu, dùng từ khóa [ref] Swap( ref a, ref b );
Console.WriteLine( "After swap: a = {0}, b = {1}", a, b );

// Chỉ khai báo
int x;

// Truyền biến x theo kiểu Tham chiếu, dùng từ khóa [out] GetValue( out x );

Console.WriteLine( "Now, value of x = {0}", x );

Console.ReadKey();
}

// Method hoán vị 2 số Swap, dùng biến tham chiếu [ref] public static void Swap(ref int a, ref int b)
{
int tmp;
tmp = a;
a = b;
b = tmp;
}

// Method GetValue, dùng biến tham chiếu [out] public static void GetValue(out int x)
{
x = 5;
}
}
}
[/code]

Kết quả chương trình

Kết quả chương trình

Cảm ơn bạn đã theo dõi. Đừng ngần ngại hãy cùng thảo luận với chúng tôi!

Giới thiệu

Minh Hoàng

Xin chào, tôi là Hoàng Ngọc Minh, hiện đang làm BrSE, tại công ty Toyota, Nhật Bản. Những gì tôi viết trên blog này là những trải nghiệm thực tế tôi đã đúc rút ra được trong cuộc sống, quá trình học tập và làm việc. Các bài viết được biên tập một cách chi tiết, linh hoạt để giúp bạn đọc có thể tiếp cận một cách dễ dàng nhất. Hi vọng nó sẽ có ích hoặc mang lại một góc nhìn khác cho bạn[...]

5 bình luận

Translate »