VB當中的新語法 二

2021-08-22 17:44:28 字數 1418 閱讀 6659

vb當中的新語法

(

)

--區域型別推斷

xml<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

當你看完筆者這幾篇關於

vb的新語法介紹之後,你會發現其實都跟

linq

有很密切的關係,儘管有些功能看似語法上的新擴充,但是實務上會使用到這些語法的場合,大多跟

linq

多少脫不了關係呢~

接著我們要來看的第二個vb新語法稱為『區域型別推斷』,簡單的說,就是當你宣告變數時不指定型別的時後編譯程式會自動幫你決定變數的型別,而不是一律的以object作為變數的型別,運算時再通過boxing來解決。

過去,當你鍵入底下的程式**:

dim v

這個變數v是object型別,在舊版的vb 6.0當中,則是variant,如今,當你在編輯器當中輸入這樣的程式**:

dim v = 3

你的變數v型別會自動設為integer,倘若是:

dim v = 3.14

你的變數v型別會自動設為double。

總括來說,編譯程式會依照初始值來決定變數型別。

甚至,變數的型別也可以由函式的返回值來決定,例如:

dim ret = getbmi()

嚴格說起來,這些動作都是編輯器自動幫你做的, 對程式**來說沒有什麼太大的影響,有一些部分也是因為在過去vb本來就會進行相當多的隱含型別轉換,所以這些動作對開發人員來說沒啥特別的感覺,但是實務上它可以加快程式執行的速度(因為不需要再做這些型別轉換

)然而,你可能看到更多的使用場合是把這個機制和linq的查詢返回值混在一起,再回頭看前幾天介紹的linq語法:

'查詢bmi值大於25的人

dim result = from c in matrix where c.bmivalue > 25

從這邊你會看到通過查詢語法所返回的值,也是通過這樣的機制來建立的。總的來說vb在語法上的更新,蠻多都實現在linq相關的應用上,這也是先前說過vb新語法與linq幾乎脫不了關係。

另外,由於有型別推斷,你可以在vb當中直接這麼寫:

你可以直接把xml以copy paste的方式貼到程式**編輯區,然後定義乙個變數來承接,由於具有型別推斷的功能,因此xmldata變數會被定義成xelement型別,寫起程式來方便多了。

VB當中的新語法 二

vb當中的新語法 二 區域型別推斷 與 xml 當你看完筆者這幾篇關於vb 的新語法介紹之後,你會發現其實都跟 linq 有很密切的關係,儘管有些功能看似語法上的新擴充,但是實務上會使用到這些語法的場合,大多跟 linq 多少脫不了關係呢 接著我們要來看的第二個 vb新語法稱為 區域型別推斷 簡單的...

VB當中的新語法 一

vb當中的新語法 一 匿名型別 上週跟大家介紹了linq在vb當中的應用之後,這次順帶介紹一下vb在這個版本中的改變,在vb 2008當中,配合linq新增了許多新的語法,底下這也是vb在建立物件時的新寫法 dim stud1 as new students with 上述指令會建立乙個studen...

VB當中的新語法 四

vb當中的新語法 四 lambda 這個世界上很多東西是沒有道理的.不知道你是不是也會這樣覺得。老實說,過去寫程式寫慣了的人,一開始看到lambda表示式會覺得怪怪的,我先講它的意義,官方說法是,lambda表示式可以簡化程式 的寫法 增加可讀性 老實說我覺得簡化程式 的寫法這件事情很少跟增加可讀性...