Computer >> Máy Tính >  >> Lập trình >> C#

Sự khác biệt giữa var và dynamic trong C #

Như chúng ta biết rằng lập trình bằng bất kỳ ngôn ngữ nào cũng bắt đầu bằng việc khai báo một biến mà sau đó việc định nghĩa và triển khai logic của nó sẽ diễn ra. Vì vậy, một trong những yếu tố quan trọng nhất cần biết rằng 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 viết mã trong đó.

Bây giờ nếu chúng ta lấy một ví dụ của ngôn ngữ C #, sẽ có sự thay đổi trong khai báo theo biến số cùng với sự tiến bộ trong ngôn ngữ. Như trong phiên bản cũ của C #, tất cả mã được viết đã được xác thực tại chính thời gian biên dịch, điều này khiến nó trở thành ngôn ngữ được gõ tĩnh nơi các biến được khai báo bằng từ khóa var. Sau C # 4.0, có phần giới thiệu động trong đó việc xác thực cú pháp hoặc kiểm tra lỗi chỉ xảy ra tại thời điểm chạy, nó cũng giới thiệu từ khóa động để khai báo các biến.

Sau đây là những điểm khác biệt quan trọng giữa var và dynamic.

Sr. Không. Phím var động
1 Định nghĩa var là một biến được định kiểu tĩnh, có nghĩa là kiểu dữ liệu của các biến này được suy ra tại thời điểm biên dịch được thực hiện dựa trên kiểu giá trị mà các biến này được khởi tạo. Mặt khác, động là các biến được nhập động, ngụ ý rõ ràng rằng kiểu của chúng được suy ra tại thời gian chạy chứ không phải thời gian biên dịch.
2 Phiên bản var trong ngôn ngữ c sharp được giới thiệu trong C # 3.0 Mặt khác, động được giới thiệu sau trong C # 4.0
3 Loại Trong trường hợp var, loại biến được trình biên dịch xác định tại thời điểm biên dịch. Mặt khác, trong trường hợp động, loại biến được xác định tại thời điểm chạy bằng chính trình biên dịch.
4 Khai báo Trong trường hợp var, biến được khởi tạo tại thời điểm khai báo để trình biên dịch biết loại biến theo giá trị được gán cho nó. Mặt khác, trong trường hợp động, không bắt buộc phải được khởi tạo tại thời điểm khai báo.
5 Ngoại lệ Biến xác định bằng var ném ra một ngoại lệ nếu chưa được khởi tạo tại thời điểm khai báo. Trong khi biến xác định với động không đưa ra bất kỳ ngoại lệ nào nếu chúng không được khởi tạo tại thời điểm khai báo