介紹
隱含型別(Implicit Typed)
隱含型別使用var來宣告,在編譯時才會被指派明確的型別。
var grade = 90;
var StreamReader = new StreamReader();
顯式型別(Explicit Typed)
顯式型別則是在程式碼撰寫時就明確指派型別,範例如下:
int i = 1;
int n = 2;
差別
簡單來說,根本沒差!XD
基本上編譯過後兩者的效能會是一模一樣的,所以在效能這點上是不用擔心var會比較耗效能。
可讀性(Readibility)
效能沒差的話差別就是可讀性囉!
如果想要一眼看出變數是甚麼型別的話用顯式型別式會比較清楚,但是var的話就是整體會比較短,就看公司內部Coding Style如何規範就用哪個囉!(像我們公司就是要用顯式)
var還有一個優點就是假如方法內的區域變數要更改型別,就只要更改參數內的型別就好,假設有個方法這樣寫:
public IEnumerable GetStockOverPrice(IEnumerable<Stock> stocks, int priceOver)
{
IEnumerable<Stock> result = new IEnumerable<Stock>();
for(int i = 0;i < stocks.Count; i++)
{
if(stocks[i] >= priceOver)
{
result.Add(stocks[i]);
}
}
return result;
}
假設類似的方法在公司的專案裡有1000個,那如果今天要把IEnumerable改成List的時候就要把區域變數用到IEnumerable改成List了,光用想的就累死人哈!
用var就可以省去修改的時間囉!