Sự khác nhau giữa các từ khóa Constant, ReadOnly và Static trong C#

Các từ khóa Constant và ReadOnly (const và readonly) trong C# dùng để khai báo 1 biến mà giá trị không thể bị thay đổi. Từ khóa static thì được sử dụng để tạo ra biến tĩnh chia sẻ giá trị cho tất cả các thể hiện của class đó. Trong bài viết này chúng ta sẽ cùng tìm hiểu về sự khác nhau giữa chúng.

Constant

Trường constant hay biến constant phải được gán giá trị lúc khai báo sau đó thì chúng không thể thay đổi giá trị. Mặc định constant là static nên không thể khai báo thêm từ khóa static cho biến constant.

Một biến constant là một hằng số từ khi biên dịch (compile-time constant). Một biến constant có thể được khởi tạo bởi một biểu thức nhưng phải đảm bảo các toán hạng trong biểu thức cũng phải là constant.

Bạn có thể áp dụng từ khóa const vào các kiểu nguyên thủy (byte, short, int, long, char, float, double, decimal, bool), enum, một chuỗi, hoặc một kiểu tham chiếu và có thể gán với giá trị null.

Biến constant có thể được gán tất cả các access modifiers như public, private, protected, internal. Bạn sử dụng biến constant trong trường hợp chắc chắn giá trị của chúng không thay đổi.

ReadOnly

Một biến Readonly có thể được khởi tạo vào thời điểm khai báo hoặc trong constructor của class đó. Vì vậy các biến readonly có thể được sử dụng như là các hằng số lúc thực thi (run-time constants)

Readonly có thể được áp dụng cho cả tham số giá trị và kiểu tham chiếu trừ delegate và event. Sử dụng readonly khi bạn muốn tạo ra biến constant ở runtime.

Static

Từ khóa static được sử  dụng để tạo một biến hoặc một thành phần tĩnh, nghĩa là giá trị của nó sẽ được chia sẻ cho toàn bộ các đối tượng và không gắn vào một đối tượng cụ thể nào. Từ khóa static có thể được áp dụng cho cả class, fields, properties, operators, events, constructor nhưng không dùng được cho index, destructors, hay kiểu nào hơn các classs.

Kiến thức về từ khóa static

  • Nếu từ khóa static được áp dụng cho 1 class tất cả các thành phần trong class cũng phải static
  • Phương thức static chỉ có thể truy cập các thành phần static khác trong class. Các static properties được sử dụng để set và get giá trị cho các giá trị của biến static trong class.

Static constructor không thể có tham số. Không thể áp dụng các access modifiers cho static constructor, luôn có một default constructor public để khởi tạo các biến static cho class.

Cảm ơn các bạn đã đọc bài hy vọng qua bài viết này sẽ giúp các bạn học lập trình C# hiểu rõ hơn sự khác nhau giữa biến Constant, ReadOnly và Static.

Sự khác nhau giữa các từ khóa Constant, ReadOnly và Static trong C#
5 (100%) 10 votes

Nhận xét