Liên đới dạng trong C#
Các dạng là vấn đề cực lớn trong C#. Mọi biến, giá trị và biểu thức có một dạng đã
biết, cụ thể. Chúng ta đã rất cụ thể khi khai báo các biến để gọi ra dạng của mỗi biến.
Nhưng trình dịch rất là thông minh. Nó thường có thể nhìn vào code của bạn và định hình
ra dạng gì là thứ gì đó từ các manh mối quanh nó. Đặc tính này gọi là type inference. Nó
là Sherlock Holmes của trình dịch.
Liên đới dạng được sử dụng cho nhiều đặc tính ngôn ngữ lập trình, nhưng một cái được biết đến
nhiều là rằng trình dịch có thể liên đới dạng của một biến dựa trên code cái nó được khởi
tạo với. Bạn không luôn cần viết ra dạng một biến bản thân bạn. Bạn có thể sử dụng từ khoá
var thay vào:
var message = “Hello, World!”;
Trình dịch có thể thông báo rằng “Hello, World!” là một string, và vì vậy message phải là
một string cho code này làm việc. Sử dụng var thông báo cho trình dịch, ” Bạn đã có cái này
. Tôi biết bạn có thể định hình nó ra. Tôi sẽ không nhàm viết nó ra bản thân tôi”.
Cái này chỉ làm việc nếu bạn khởi tạo biến trên cùng dòng nó được khai báo. Nếu không, sẽ không
có đủ thông tin cho trình dịch liên đới dạng của nó. Cái này không làm việc:
var x; // DOES NOT COMPILE!
Không có các manh mối để tạo điều kiện cho liên đới dạng ở đây, nên type inference thất bại. Bạn sẽ
phải quay trở lại sử dụng các dạng được đặt tên cụ thể.