var
biến vẫn có loại - và thông báo lỗi trình biên dịch cho biết loại này phải được thiết lập trong tuyên bố.
Yêu cầu cụ thể (chỉ định giá trị null ban đầu) có thể được thực hiện, nhưng tôi không khuyên bạn nên sử dụng nó. Nó không cung cấp một lợi thế ở đây (tùy theo từng loại vẫn phải được xác định) và nó có thể được xem như là làm cho mã dễ đọc hơn:
var x = (String)null;
Đó là vẫn còn "loại suy" và tương đương với:
String x = null;
Trình biên dịch sẽ không chấp nhận var x = null
vì nó không liên kết null với bất kỳ loại nào - ngay cả đối tượng. Sử dụng cách tiếp cận trên, var x = (Object)null
sẽ "hoạt động" mặc dù nó có tính hữu ích đáng ngờ.
Nói chung, khi tôi không thể sử dụng var
's suy luận kiểu đúng rồi
- tôi đang ở một nơi mà nó là tốt nhất để khai báo các biến một cách rõ ràng; hoặc
- Tôi nên viết lại mã sao cho giá trị hợp lệ (có loại được thiết lập) được chỉ định trong quá trình khai báo.
Cách tiếp cận thứ hai có thể được thực hiện bằng cách di chuyển mã vào các phương thức hoặc chức năng.
http://stackoverflow.com/questions/2904689/how-to-initialize-var – Longball27