[DOTNETVN] Phân biệt Constant và ReadOnly trong C#

Phân biệt Constant,và ReadOnly trong C#

Đầu tiên tôi sẽ chém gió qua một tí để khơi mào lại cho các bạn về ConstantReadOnlyheart

Tụi nó thật chất là gì ?, chẳng qua là một dạng biến mà giá trị méo thể thay đổi được, vậy thì tụi nó khác nhau cái gì?  => Hết phần chém gió => xem chi tiết bên dưới nhé !

Constant

Thằng này thì đúng như mấy cái chữ đã được tô đậm phía trên kia luôn là giá trị của nó không thể thay đổi trong suốt chương trình. Giá trị của nó sẽ có hiệu lực tại thời điểm biên dịch (compile - time)

Xét một ví dụ nho nhỏ sau:

const string cons = "I am constant";
static void Try()
{
    cons = "Try to change hehe";
}

Tôi đã nói là giá trị của nó không thể thay đổi được vậy điều vi diệu gì sẽ xảy ra khi chúng ta F5 ?, tất nhiên là có một lỗi không hề nhỏ hiện ra rồi, đừng dại mà code theo nhé AE =)).

ReadOnly

Readonly cũng tương tự như Constant nhưng điểm khác biệt là các bạn có thể thay đổi giá trị của nó nhưng chỉ được phép thay đổi trong Contructor mà thôi.

Vậy tóm lại sự khác biệt là gì ?  => Readonly có thể thay đổi được giá trị và chỉ thay đổi được trong contructor của class mà thôi.