2009-07-30 51 views
10

Bản sao có thể xảy ra:
What to use: var or object name type?
Use of var keyword in C#
What’s the point of the var keyword?
Should I always favour implictly typed local variables in C# 3.0?C# sử dụng từ khoá var

Tôi vừa cài đặt một phiên bản dùng thử của ReSharper để đánh giá nó cho công ty của tôi. Một điều mà tôi đã nhận thấy là nó được gợi ý rằng tôi thay đổi như sau (tạo thành ví dụ):

string s = ""; 

để

var s = ""; 

Có thực hành tốt nhất để sử dụng từ khóa var hơn là sử dụng các đối tượng Nhập khi khai báo biến? Những lợi thế nào nó cung cấp cho. Đối với ngữ cảnh, tôi là một nhà phát triển Java cũ, những người vừa chuyển sang các công trình .Net.

+1

Tôi nghĩ rằng đây trả lời câu hỏi của bạn: http://stackoverflow.com/questions/17032/should-i-always-favour-implictly-typed-local-variables-in-c-3-0 –

+2

Bản sao: http://stackoverflow.com/questions/209199/ stackoverflow whats-the-point-of-the-var-keyword và http: //.com/questions/236878/what-to-use-var-hoặc-object-name-type – Noldorin

+0

http://stackoverflow.com/questions/41479/use-of-var-keyword-in-c –

Trả lời

28

Tôi nghĩ rằng việc sử dụng mã số var dễ dàng hơn, điều này có nghĩa là loại var đang thay thế phải hoàn toàn rõ ràng.

Ví dụ, đây sẽ là một dụng tốt var (ví dụ contrived):

var thing = new Dictionary<int, KeyValuePair<string, int>>(); 

Tuy nhiên đây sẽ là một sử dụng xấu của var:

var thing = GetThingFromDatabase(); 
12

Tôi tìm thấy nó hữu ích trong một số trường hợp khai báo kiểu là rất dài, ví dụ:

Dictionary<int, string> item = new Dictionary<int, string>(); 

trở thành

var item = new Dictionary<int, string>(); 
8

Nó khoản để điều tương tự vì sử dụng từ khóa var, các biến là implicity gõ và trình biên dịch infers các loại tại thời gian xây dựng. Tôi thích chỉ định loại thay vì sử dụng var trong hầu hết các trường hợp, vì vậy tôi thay đổi cài đặt chia sẻ lại của mình.

+1

-1: Người đặt câu hỏi hows rằng và muốn biết cơ sở trên đó sẽ đi về quyết định cách nào để rơi. –

+0

Tôi không nghĩ rằng câu trả lời của tôi là vô dụng và xứng đáng với một downvote mặc dù – Charlie

+0

Mỹ, downvote undone - có vẻ như những người khác là của một cái nhìn tương tự (hoặc là họ cố gắng để chống lại 'nastiness' của tôi? Tôi đã cho nó -1 để truy cập một 1 vào thời điểm đó - Tôi tin rằng câu trả lời không thêm nhiều arent vào cuối thế giới miễn là họ ở lại ở số không và không có khả năng làm cho nó mất nhiều thời gian để có được một câu trả lời mà thực sự có một cái gì đó sâu sắc để nói. lý do tại sao http://stackoverflow.com/questions/1205329/c-var-keyword-usage/1205396#1205396 cũng có +1 của tôi và những người khác. –

1

Như tôi nhớ nó Resharper chỉ nói rằng nó có thể được viết theo cách này. Nó không nói rằng bạn nên.

Rất nhiều đề xuất chỉ là đề xuất mà tôi đã quay lần đầu tiên tôi nhìn thấy chúng .. Đó là một trong số đó.

Một điều khác là nó nói rằng nó là thừa để viết "this.someProperty", trong khi tôi nghĩ rằng mã được dễ dàng hơn để đọc bằng cách làm điều đó.

0

Tính năng chia sẻ lại cũng có đề xuất chuyển đổi nếu câu lệnh thành đúng hoặc không đúng sự thật. Hầu như cùng một điều, nhưng nó phụ thuộc vào phong cách mã hóa của bạn. Vì vậy, khi bạn thấy việc sử dụng var thoải mái hơn - hãy sử dụng đề xuất này.

Các vấn đề liên quan