2010-09-07 237 views
1

可能重複:
Use of var keyword in C#聲明變量

嗨,我是很新的C#,

我想知道在聲明變量的最佳實踐。

我知道在聲明變量(隱式)時可以使用VAR(顯式聲明)或DataType。

我很感激你的意見感謝

+1

C磅是真棒。 – Zoidberg 2010-09-07 10:33:19

+2

確定重複。一個非常好的問題,雖然已經回答了一個問題。介意你,明確地輸入數據類型是明確的。 – 2010-09-07 10:35:53

回答

2

我總是試圖給我的變量聲明,描述它們是什麼,駱駝套管有用的名稱,聲明在類的頂部。

大多數人會說使用var是最好的。它降低了未來維護的複雜性,例如,如果更改特定方法的返回類型,則不必去改變從該方法分配給每個變量的類型,因爲您已經使用var聲明變量。

這種類型的問題已經在stackoverflow上多次覆蓋了。例如見:Use of var keyword in C#

+0

+1可維護性方面 – 2010-09-07 11:12:37

+0

感謝您的意見! – GibboK 2010-09-07 11:45:47

2

這是相反的。這是一個明確的類型:

int x = 42; 

這是一個隱式類型:

var x = 42; 

當你有你應該使用隱式聲明(即當您使用匿名類型),或者當代碼變得更可讀。

例子:

// anonymous type 
var y = new { item: "asdf" }; 

// avoid repeating long type names 
var z = new System.Text.StringBuilder(); 
1

就個人而言,我很高興能使用var myVariable = new ReferenceType();,因爲我知道我會得到的類型的變量,有指定類型再次重複。有時你需要具體聲明,例如:IComplexThing var = new ComplexThing();

爲了交換數組和集合,然後foreach(項目中的var項)是OK,因爲我再次知道我會得到什麼類型。

我通常嘗試使用MyType result = from x in queryable where x=>x.Id == id select x;,因爲該類型在查詢之前是已知的,但對於像var result = from x in queryable where x=>x.Id == id select new { Id, Name, Description};這樣的查詢,該類型在查詢時生成並且不知道。我試圖遠離那種類型的查詢。