Vì vậy, chúng tôi viết:
Customer c = new Customer();
Tại sao thiết kế không phải là như vậy mà chúng tôi viết:
c = new Customer();
c.CreditLimit = 1000;
Trình biên dịch có thể tìm ra điểm c cho Khách hàng và cho phép các thành viên của Khách hàng được gọi trên c?
Tôi biết chúng tôi có thể muốn viết:
IPerson c = new Customer();
IPerson e = new Employee();
để có thể viết:
public string GetName(IPerson object)
{
return object.Name
}
string name = GetName(c); // or GetName(e);
Nhưng nếu chúng tôi viết:
c = new Customer();
e = new Employee();
chúng ta vẫn có thể viết:
public string GetName(object)
{
return object.Name
}
string name = GetName(c); // or GetName(e);
Trình biên dịch có thể khiếu nại về mã ngay lập tức nếu loại tham chiếu c của đối tượng không hỗ trợ thuộc tính Tên (vì nó có thể kiểm tra thành viên nào được sử dụng trên đối số / tham số trong phương thức) hoặc thời gian chạy có thể khiếu nại.
Ngay cả với từ khóa động của C #, chúng tôi vẫn đang sử dụng một biến 'loại' (được xác định khi chạy). Nhưng tại sao một biến cần một loại ở tất cả? Tôi chắc chắn phải có một lý do chính đáng, nhưng tôi không thể nghĩ về nó!
var
trong C # và thông báo về nơi bạn muốn khai báo một biến luôn tốt.