Chúng ta biết rằng lập trình bằng bất kỳ ngôn ngữ nào đều bắt đầu bằng khai báo biến, sau đó là định nghĩa và triển khai logic. Vì vậy, đó là một trong những yếu tố quan trọng nhất để biết cách khai báo biến trong bất kỳ ngôn ngữ lập trình nào trước khi bắt đầu code.
Nếu lấy ví dụ ngôn ngữ C#, có sự thay đổi trong khai báo biến với sự tiến bộ của ngôn ngữ. Ở các phiên bản C# trước, tất cả mã được kiểm tra tại compile time, làm cho nó thành ngôn ngữ tĩnh (statically typed) nơi biến khai báo bằng từ khóa var. Sau C# 4.0 có sự giới thiệu của dynamic, nơi kiểm tra cú pháp/lỗi chỉ xảy ra tại runtime, và cũng giới thiệu từ khóa dynamic cho khai báo biến.
Dưới đây là những khác biệt quan trọng giữa var và dynamic.
| STT | Khóa | var | dynamic |
|---|---|---|---|
| 1 | Định Nghĩa | var là biến tĩnh (statically typed) nghĩa là kiểu dữ liệu của biến này được suy luận tại compile time dựa trên kiểu giá trị khởi tạo. | Ngược lại, dynamic là biến động (dynamically typed) nghĩa là kiểu được suy luận tại runtime, KHÔNG phải compile time. |
| 2 | Phiên Bản | var trong C# giới thiệu từ C# 3.0 | Ngược lại, dynamic giới thiệu sau trong C# 4.0 |
| 3 | Kiểu | Với var, kiểu biến được xác định bởi compiler tại compile time. | Ngược lại, với dynamic, kiểu biến được xác định tại runtime bởi compiler. |
| 4 | Khai Báo | Với var, biến BẮT BUỘC khởi tạo tại khai báo để compiler biết kiểu theo giá trị gán. | Ngược lại, với dynamic KHÔNG bắt buộc khởi tạo tại khai báo. |
| 5 | Ngoại Lệ | Biến dùng var ném exception nếu KHÔNG khởi tạo tại khai báo. | Biến dùng dynamic KHÔNG ném exception nếu không khởi tạo tại khai báo. |