自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Visual C# 2010新特性之dynamic類型

開發(fā) 后端
在Visual C# 2010中引入了一種新的dynamic類型,該類型是一個(gè)靜態(tài)的(static)類型。本文將對(duì)這一新類型進(jìn)行介紹。

在大多數(shù)情況下dynamic和object類型有些相似,但是在編譯時(shí),dynamic類型被假定為支持任何操作,也就是說dynamic類型的對(duì)象可以是一個(gè)Office對(duì)象,可以是一個(gè)COM對(duì)象或者是DOM對(duì)象,而如果在運(yùn)行時(shí)發(fā)現(xiàn)該對(duì)象不是期望的對(duì)象則會(huì)拋出一個(gè)運(yùn)行時(shí)異常。

由于把一個(gè)對(duì)象定義為dynamic類型,因此在代碼中編寫任意調(diào)用在編譯時(shí)都是合法的(這一點(diǎn)在聲明為object類型時(shí)不能成立)。例如以下代碼能夠通過編譯:

運(yùn)行后發(fā)現(xiàn)obj并不支持UpdateWordDocument方法,因此會(huì)拋出異常:

大多數(shù)動(dòng)態(tài)類型操作的結(jié)果仍是動(dòng)態(tài)類型,例如編寫如下代碼時(shí)智能提示會(huì)顯示變量的類型是dynamic:

在包含從dynamic類型到其他類型的轉(zhuǎn)換,或者將dynamic類型作為構(gòu)造函數(shù)參數(shù)的操作結(jié)果不會(huì)返回dynamic類型,例如以下代碼:

此時(shí)c不是dynamic類型。

開發(fā)人員可以輕松的在dynamic和非dynamic類型之間轉(zhuǎn)換,正是由于dynamic類型在編譯時(shí)被視為支持任何操作,所在只需要保證它們之間的轉(zhuǎn)換是正確的數(shù)據(jù)類型轉(zhuǎn)換,否則運(yùn)行時(shí)會(huì)發(fā)生錯(cuò)誤。例如以下代碼:

使用了通過動(dòng)態(tài)類型參數(shù)的方法會(huì)在運(yùn)行時(shí)解析而不是在編譯時(shí)解析,在.NET Framework 4 Beta1中引入了新的dynamic language runtime(DLR),它為C#中的dynamic類型提供了支持,而且提供了對(duì)諸如IronPython和IronRuby等動(dòng)態(tài)語言的實(shí)現(xiàn)。

Visual C# 2010使用dynamic類型和命名和可選參數(shù)為與COM API交互提供了便利。許多COM方法接收各種類型參數(shù)并且通常會(huì)返回object類型值,開發(fā)人員需要進(jìn)行類型轉(zhuǎn)換以進(jìn)行進(jìn)一步操作。在.NET Framework 4中,如果使用/link開關(guān)編譯程序,dynamic類型允許在COM調(diào)用時(shí)將object類型作為dynamic類型對(duì)待,這樣可以避免類型轉(zhuǎn)換。例如以下代碼(此代碼系摘錄,機(jī)器原因未經(jīng)過本人測試)

【編輯推薦】

  1. C#中對(duì)DatagridView的部分常用操作
  2. C#中實(shí)現(xiàn)多繼承的方式:混合+接口
  3. 簡述用C#實(shí)現(xiàn)優(yōu)先隊(duì)列方法
責(zé)任編輯:彭凡 來源: cnblogs
相關(guān)推薦

2009-08-19 16:51:14

C# 4.0 dyna

2009-05-26 09:28:22

C# 4.0dynamic動(dòng)態(tài)類型

2009-05-26 11:15:31

C# 4.0dynamicVisual Stud

2009-08-31 14:45:07

Visual C# 3

2010-01-14 10:56:43

Visual C++

2009-08-19 16:50:32

Visual C#C#語言特性

2009-05-26 16:12:43

Visual StudC#命名

2009-08-21 13:29:20

Visual Stud

2009-05-27 11:30:20

C#Visual Stud協(xié)變

2010-03-23 16:53:19

Visual Stud

2009-08-26 17:10:09

C# 3.5新特性

2010-04-01 09:06:05

C# 2010

2009-09-02 16:21:17

Visual BasiC#語言

2010-03-26 14:37:57

Visual Stud

2009-07-02 10:07:24

C# 4.0的動(dòng)態(tài)類型Visual Stud

2024-12-31 00:08:37

C#語言dynamic?

2009-08-27 16:24:48

擴(kuò)展方法C# 3.0新特性

2009-08-26 16:01:37

C#特性

2010-04-07 09:46:05

2009-10-16 09:03:36

Visual Stud
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)