程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#基礎知識 >> .NET關鍵字dynamic和var的區別

.NET關鍵字dynamic和var的區別

編輯:C#基礎知識

 

1.var聲明一個局部變量只是一種簡化語法,它要求編譯器根據一個表達式推斷具體的數據類型。

2.var只能用於聲明方法內部的局部變量,而dynamic可用於局部變量,字段,參數。

3.表達式不能轉型為var,但能轉型為dynamic。

4.必須顯式初始化用var聲明的變量,但無需初始化用dynam聲明的變量。

 

       常有人會拿var這個關鍵字來和dynamic做比較。實際上,var和dynamic完全是兩個概念,根本不應該放在一起做 比較。var實際上是編譯期拋給我們的“語法糖”,一旦被編譯,編譯期會自動匹配var 變量的實際類型,並用實際類型來替換該變量的申明,這看上去就好像我們在編碼的時候是用實際類型進行申明的。而dynamic被編譯後,實際是一個 object類型,只不過編譯器會對dynamic類型進行特殊處理,讓它在編譯期間不進行任何的類型檢查,而是將類型檢查放到了運行期。

這從visual studio的編輯器窗口就能看出來。以var聲明的變量,支持“智能感知”,因為visual studion能推斷出var類型的實際類型,而以dynamic聲明的變量卻不支持“智能感知”,因為編譯器對其運行期的類型一無所知。對 dynamic變量使用“智能感知”,會提示“此操作將在運行時解析”

總結:var表示“變量的類型是在編譯時決定的”,但是dynamic表示“變量的類型是在運行時決定的”。因此,dynamic與var具有截然不同的含義。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved