Có, chúng khác nhau. var loại bỏ kiểu dữ liệu gốc và một kiểu dữ liệu kiểm tra, vì vậy nó nguy hiểm hơn.
Type-kiểm tra
Một định nghĩa biến bình thường bao gồm một kiểu dữ liệu kiểm tra về việc chuyển nhượng ban đầu.
T a = init; // type-checked
a = b; // type-checked
a = c; // type-checked
này là mất tích khi bạn sử dụng var
var a = init; // NOT type-checked
a = b; // type-checked
a = c; // type-checked
Các xét nghiệm thời gian biên dịch là keo nắm giữ các chương trình lớn với nhau. Loại bỏ chúng là ngu xuẩn.
tình cờ thay đổi
Một định nghĩa biến bình thường có một loại cố định - nó không thể được thay đổi ngẫu nhiên.
TOrig a = init(e); // datatype fixed (as intended)
Khi bạn loại bỏ kiểu dữ liệu ban đầu, bạn cho phép vô tình thay đổi loại biến. Bất kỳ thay đổi nào đối với biểu thức ban đầu đều có thể thay đổi kiểu dữ liệu của biến.
var a = init(e); // datatype changes with init and e
Theo thời gian, khi phần mềm được chỉnh sửa, kiểu dữ liệu có thể vô tình thay đổi.
Điều đó có thể đã xảy ra và bạn không thể biết được.
Ví dụ:
public double MaxValue = 1.2;
... meanwhile, in another source file ...
var x = MaxValue - 1;
var y = IsFull(x);
Cả x và kiểu dữ liệu y có thể được vô tình thay đổi bằng cách chỉnh sửa maxvalue.
Q. Điều này đã xảy ra chưa?
Tóm tắt
Sử dụng var
biến datatype biến địa phương thành một phần di chuyển không được kiểm soát.
Càng có nhiều bộ phận chuyển động, máy càng có nhiều khả năng bị vỡ.
Loại dữ liệu rõ ràng ngăn ngừa lỗi.
bản sao có thể có của [Điểm của từ khóa var là gì?] (Http://stackoverflow.com/questions/209199/whats-the-point-of-the-var-keyword) –
cũng là bản sao của: http : //stackoverflow.com/questions/41479/use-of-var-keyword-in-c –