C#中var、int、object性能比較,
var關鍵字是.net3.5推出的關鍵字,主要是讓編譯器自動推斷並判斷變量類型,類似javascript中的var。
在使用一些性能優化軟件時,在代碼優化時,我發現不管定義什麼類型的變量,變量的類型都統統換成var。難道var的性能比具體的類型和object都要高?
實踐出真知:
新建一個控制台應用程序

![]()
1 /*Var 性能測試 */
2 Stopwatch stw = new Stopwatch();
3
4 List<int> intlist = new List<int>();
5 stw.Start();
6 for( int i = 0; i < 10000000; i++ ) {
7 var index = i;//使用var轉入和轉出
8 intlist.Add(index);
9 }
10 stw.Stop();
11 Console.WriteLine("Var:{0}", stw.Elapsed.Ticks);
12
13
14 /*Int 性能測試 */
15
16
17 List<int> intlist2 = new List<int>();
18 stw.Start();//開始時間
19 for( int i = 0; i < 1000000; i++ ) {
20 int index = i;//使用int轉入和轉出
21 intlist2.Add(index);
22 }
23 stw.Stop();
24 Console.WriteLine("int:{0}", stw.Elapsed.Ticks);
25
26 /*Object性能測試 */
27 stw.Start();//開始時間
28
29 List<int> intlist3 = new List<int>();
30 for( int i = 0; i < 1000000; i++ ) {
31 object index = i;//使用object轉入和轉出
32 intlist3.Add((int)index);
33 }
34 stw.Stop();
35 Console.WriteLine("obj:{0}", stw.Elapsed.Ticks);
36
37 Console.Read();
View Code
測試結果:


總結:
var性能 > int > object
object 類型牽涉裝箱拆箱的問題,自然是效率最慢的。
但從測試結果來看,var類型的性能總是優於int或其他類型。