Var keyword trong C#
Từ version .net 2.0 thì khi khai báo 1 biến trong c# thì phải đi kèm với kiểu giá trị của nó, ví dụ khai báo 1 biến để lưu giá trị kiểu int thì người ta dùng:
int a = 0;
Thế nhưng sau khi có sự xuất hiện của linq thì từ version .net 3.0 trở đi cho phép chúng ta khai bao 1 biến lưu giá trị ngầm định, "ngầm định" ở đây là chúng ta sẻ chưa biết kiểu giá trị của nó cho đến khi trình biên dịch quyết định kiểu giá trị của nó.
Khi đó kiểu giá trị của nó sẻ phụ thuộc vào giá trị bên vế phải ví dụ:
var helloworld = "Hello world";
Khi đó helloworld sẻ có kiểu giá trị là kiểu int, how to check it
Trình biên dịch sẻ báo lổi không thể biên dịch, tiếp theo là khi khai báo chúng ta phải gián giá trị mặc định cho nó, và giá trị đó không được null
Biên dịch không thành công
Kết luân: nếu chúng ta chưa biết giá trị cần lưu là gì thì nên dùng từ khóa var.
History version:
√ 20/05/2010 first release
√ 27/05/2010 add Restrictions of var keyword
int a = 0;
Thế nhưng sau khi có sự xuất hiện của linq thì từ version .net 3.0 trở đi cho phép chúng ta khai bao 1 biến lưu giá trị ngầm định, "ngầm định" ở đây là chúng ta sẻ chưa biết kiểu giá trị của nó cho đến khi trình biên dịch quyết định kiểu giá trị của nó.
Khi đó kiểu giá trị của nó sẻ phụ thuộc vào giá trị bên vế phải ví dụ:
var helloworld = "Hello world";
Khi đó helloworld sẻ có kiểu giá trị là kiểu int, how to check it
var helloworld = "Hello world";
Console.WriteLine(helloworld.GetType().Name);
Console.Read();
Giới hạn:
Chắc rằng var keyword cũng có mặt giới hạn của nó, thứ nhất nó chỉ cho phép khai báo trong phạm vi cục bộ (local) trong phương thức hoặc thuộc tính, và không hợp lệ nếu như kiểu dữ liêu trả về là var, cũng như là tham số cho phương thức.
Ví dụ: private var myInt = 10;
Giới hạn:
Chắc rằng var keyword cũng có mặt giới hạn của nó, thứ nhất nó chỉ cho phép khai báo trong phạm vi cục bộ (local) trong phương thức hoặc thuộc tính, và không hợp lệ nếu như kiểu dữ liêu trả về là var, cũng như là tham số cho phương thức.
Ví dụ: private var myInt = 10;
public var MyMethod(var x, var y) { }
Trình biên dịch sẻ báo lổi không thể biên dịch, tiếp theo là khi khai báo chúng ta phải gián giá trị mặc định cho nó, và giá trị đó không được null
// Error! Must assign a value!
var myData;
// Error! Must assign value at exact time of declaration!
var myInt;
myInt = 0;
// Error! Can't assign null as initial value!
var myObj = null;Biên dịch không thành công
Kết luân: nếu chúng ta chưa biết giá trị cần lưu là gì thì nên dùng từ khóa var.
History version:
√ 20/05/2010 first release
√ 27/05/2010 add Restrictions of var keyword
Nguồn: Code2code
Nhận xét
Đăng nhận xét