新聞中心

EEPW首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 學(xué)習(xí)LabVIEW(二)——操作.NET泛型類

學(xué)習(xí)LabVIEW(二)——操作.NET泛型類

作者: 時(shí)間:2017-01-09 來(lái)源:網(wǎng)絡(luò) 收藏

首先調(diào)用Dictionary的Add方法,往里面添加一個(gè)Key-Value對(duì)。根據(jù)Dictionary這個(gè)類型,Add方法的參數(shù)為一個(gè)字符串和一個(gè)整數(shù)。和前面調(diào)用MakeGenericType一樣,我們還是用LabVIEW自帶的數(shù)組來(lái)構(gòu)造Invoke所需要的Object[]。糟糕的一點(diǎn)在于,LabVIEW沒法自動(dòng)把自身的字符串和整數(shù)類型轉(zhuǎn)換成.NET的System.Object,我們需要借助dotnet.llb這個(gè)庫(kù),可以在LabVIEW的安裝目錄中找到,比如,我的機(jī)器上是這個(gè)路徑:
.../LabVIEW2013/vi.lib/Platform/dotnet.llb
在當(dāng)前的程序中點(diǎn)右鍵,在彈出的菜單中點(diǎn)擊“選擇vi“,會(huì)彈出一個(gè)打開文件對(duì)話框,用這個(gè)對(duì)話框打開上面說(shuō)到的dotnet.llb,如下圖所示:


選擇之后,會(huì)彈出另外一個(gè)對(duì)話框,選中“To .NET Object.vi”即可,如下圖所示。


最后用如下的方法成功調(diào)用了Dictionary的Add方法:


上面的程序中,我們插入的Key-Value對(duì)為
"eleven" : 11
接下來(lái),我們用Dictionary的TryGetValue方法獲取Key "eleven"對(duì)應(yīng)的Value。TryGetValue的返回值為bool型,表示查詢是否成功,第一個(gè)參數(shù)為Key,第二個(gè)參數(shù)為傳出參數(shù),為查詢得到的Value。和剛才一樣,通過(guò)GetMethod和Invoke來(lái)調(diào)用TryGetValue,構(gòu)造Object[]作為參數(shù)列表。需要注意的是,Object[]的第二個(gè)參數(shù)需要和Value的類型保持一致,否則會(huì)報(bào)錯(cuò)。程序如下:

程序中用了兩個(gè)文本框輸出TryGetValue的返回值和傳出參數(shù)。查詢時(shí)用的Key是字符串"eleven",第二個(gè)參數(shù)5是隨便寫的,只要是和Value類型相同即可。所以得到下面的運(yùn)行結(jié)果也在意料之中:


經(jīng)過(guò)了上面這一番實(shí)驗(yàn),原本認(rèn)為在LabVIEW中利用Reflection就可以輕易操縱泛型的我,還是默默啟動(dòng)了Visual Studio,寫起了C#代碼。

上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: LabVIEWNET泛型

評(píng)論


技術(shù)專區(qū)

關(guān)閉