<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

在LabVIEW中創建.net中List的步驟簡析

jf_xutpKvFS ? 來源:LabVIEW QT 修煉之路 ? 作者:Retry ? 2022-10-17 11:43 ? 次閱讀

最近有項目的個別需求需要使用.net中的一些東西來實現,如其中需要用到泛型集合List,這在C#中去創建是很簡單的事情,如List lblList = new List(); 起初我也沒太在意,認為使用.net函數選板中的構造器就可以創建該實例對象,但是最后發現根本行不通,嘗試了很久之后都快要放棄了,最后還是讓我在微軟的官網找了一些線索,最終解決了這個問題。

忽然想起之前有小伙伴在群里也問過這個問題,當時我好像給出了錯誤的答案,故總結一下順便糾正之前的錯誤。

05d89786-4c9b-11ed-a3b6-dac502259ad0.png

看完這個激動不已,在System命名空間中通過Activator.CreateInstance 靜態方法進行創建,在.net函數選板中找到Invoke Node,然后在右鍵菜單中找到“Select Class >> .NET >> Browse...”,如下圖所示:

05f7e618-4c9b-11ed-a3b6-dac502259ad0.png

在彈出的對話框中,找到Assembly選中mscorlib(4.0.0),并在下面的列表中找到System,如下圖所示:

0617e346-4c9b-11ed-a3b6-dac502259ad0.png

雙擊展開System命名空間,找到Activator,如下圖所示:

06303e00-4c9b-11ed-a3b6-dac502259ad0.png

然后鼠標左鍵單擊Method,選擇CreateInstance(Type type),如下圖所示:

06508098-4c9b-11ed-a3b6-dac502259ad0.png068c9312-4c9b-11ed-a3b6-dac502259ad0.png

此時發現改方法需要傳入Type參數,按圖索驥找到了System命名空間中的GetType(String)靜態方法,如下圖所示:

06a59a24-4c9b-11ed-a3b6-dac502259ad0.png

找到改靜態方法的方式同上述CreateInstance(Type type)一樣,這里不再贅述,如下圖所示:

06bc73a2-4c9b-11ed-a3b6-dac502259ad0.png06d584aa-4c9b-11ed-a3b6-dac502259ad0.png

此時發現改方法需要傳入typeName參數,其實就是類型的程序集限定名稱,

文檔中給出了參考代碼,如下圖所示:

using System;
using System.Collections.Generic;
using System.Globalization;

public class Example
{
    public static void Main()
    {
        Type t = typeof(String);
        ShowTypeInfo(t);

        t = typeof(List<>);
        ShowTypeInfo(t);

        var list = new List();
        t = list.GetType();
        ShowTypeInfo(t);

        Object v = 12;
        t = v.GetType();
        ShowTypeInfo(t);

        t = typeof(IFormatProvider);
        ShowTypeInfo(t);

        IFormatProvider ifmt = NumberFormatInfo.CurrentInfo;
        t = ifmt.GetType();
        ShowTypeInfo(t);
    }

    private static void ShowTypeInfo(Type t)
    {
        Console.WriteLine($"Name: {t.Name}");
        Console.WriteLine($"Full Name: {t.FullName}");
        Console.WriteLine($"ToString:  {t}");
        Console.WriteLine($"Assembly Qualified Name: {t.AssemblyQualifiedName}");
        Console.WriteLine();
    }
}
// The example displays output like the following:
//    Name: String
//    Full Name: System.String
//    ToString:  System.String
//    Assembly Qualified Name: System.String, mscorlib, Version=4.0.0.0, Culture=neutr
//    al, PublicKeyToken=b77a5c561934e089
//
//    Name: List`1
//    Full Name: System.Collections.Generic.List`1
//    ToString:  System.Collections.Generic.List`1[T]
//    Assembly Qualified Name: System.Collections.Generic.List`1, mscorlib, Version=4.
//    0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
//
//    Name: List`1
//    Full Name: System.Collections.Generic.List`1[[System.String, mscorlib, Version=4
//    .0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]
//    ToString:  System.Collections.Generic.List`1[System.String]
//    Assembly Qualified Name: System.Collections.Generic.List`1[[System.String, mscor
//    lib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], mscorl
//    ib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
//
//    Name: Int32
//    Full Name: System.Int32
//    ToString:  System.Int32
//    Assembly Qualified Name: System.Int32, mscorlib, Version=4.0.0.0, Culture=neutra
//    l, PublicKeyToken=b77a5c561934e089
//
//    Name: IFormatProvider
//    Full Name: System.IFormatProvider
//    ToString:  System.IFormatProvider
//    Assembly Qualified Name: System.IFormatProvider, mscorlib, Version=4.0.0.0, Cult
//    ure=neutral, PublicKeyToken=b77a5c561934e089
//
//    Name: NumberFormatInfo
//    Full Name: System.Globalization.NumberFormatInfo
//    ToString:  System.Globalization.NumberFormatInfo
//    Assembly Qualified Name: System.Globalization.NumberFormatInfo, mscorlib, Versio
//    n=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

我們在傳入改typeName參數時,傳入Full Name即可,如果你不知道你想創建的類型的Full Name可以先修改參考代碼并執行,即可獲取。比如我想創建List對象,改類型的Full Name就是:System.Collections.Generic.List`1[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]],如下圖所示:

06ee07c8-4c9b-11ed-a3b6-dac502259ad0.png

實際使用中我想創建的是List>對象,如下圖所示:

07168cac-4c9b-11ed-a3b6-dac502259ad0.png

理解之后你就可以創建原本你以為無法創建的對象實例了。




審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • LabVIEW
    +關注

    關注

    1919

    文章

    3619

    瀏覽量

    317063

原文標題:如何在LabVIEW中創建.net中的List

文章出處:【微信號:LabVIEW QT 修煉之路,微信公眾號:LabVIEW QT 修煉之路】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    SQL存儲過程.NET數據庫的應用

    對象。 首先,我們創建一個Windows Forms應用程序,編程語言為C#。Visual Studio.NET
    發表于 12-31 16:54

    VC# .Net瀏覽Crystal Report

    Web 服務器上發布;3、利用Crystal Report 創建的Web應用程序,使用戶可以深化圖表并根據需要篩選信息。 .NET
    發表于 03-04 16:55

    labview8.2創建NI-DAQmx仿真設備,創建不了,求助

    本帖最后由 vickeyagirl 于 2011-3-14 18:56 編輯 創建DAQ任務時,采集卡沒有接進電腦。想用虛擬的采集設備,labview8.2
    發表于 03-14 18:49

    labview list 列表實時讀取問題

    個局部變量;一個屬性節點;一個調用節點;一個引用。而 局部變量、屬性節點、調用節點并沒在循環中,只是程序開始運行的初始化階段調用了一次而已;這個程序是怎樣實現循環顯示數據到 list的,拜托各位大神了
    發表于 09-05 10:19

    labview動態創建控件的問題

    如題,labview 有沒有動態創建的控件的辦法,比如說我 程序設計之初不知道我運行時候具體有幾個LED燈泡,我想根據實際運行情況進行動態創建,類似于C++
    發表于 03-17 21:03

    LABVIEW WORD型數據怎么表示,或怎么創建

    LABVIEW WORD型數據怎么表示,或怎么創建,謝謝
    發表于 03-29 19:42

    labview創建文件函數時出現 memory is full 的問題

    `labview創建文件函數時出現 memory is full 的問題,這個問題是不是由于沒有加入關閉文件函數引起的呢`
    發表于 12-25 14:12

    Labview Communication Design System Suite如何創建屬性節點,就像在labview右鍵創建屬性節點一樣?

    Labview Communication Design System Suite如何創建屬性節點,就像在labview
    發表于 02-03 14:40

    labview調用.net的richtextbox,當內容出現中文時,selectionstart不準確的問題,請問怎么解決?

    算的,而在.net的richtextbox,偏移量按字符數量計算。比如這樣一段字符串:“明天123”,labview的字節長度是7(一
    發表于 08-07 18:34

    【設計技巧】rtos的核心原理

    rtos的核心原理rtos全稱real-time operating system(實時操作系統),我來簡單分析下:我們都知道,c語句中調用一個函數后,該函數的返回地址都是放在堆棧的(準確
    發表于 07-23 08:00

    RF-SOI技術5G的應用前景分析

    RF-SOI技術5G的應用前景
    發表于 01-04 07:02

    labview連接mongdb問題,找到不.NET的泛型類

    有沒有人用labview連接mongodb數據庫的?已下載mongodb的c#驅動,利用labview的.net控件調用相關函數,但是驅動中有部分函數
    發表于 04-08 13:38

    LabVIEW創建毫秒時間標識

    LabVIEW創建毫秒時間標識應該如何在LabVIEW創建一個軟件定時的毫秒時間標識?解決方
    發表于 06-08 20:06

    ENV配置硬件RTC+軟件RTC的步驟

    RTC2.2.編譯下載驗證可以看到 shell 輸入 help,data 的命令已經注冊到系統中了,剩下的步驟和上面硬件 RTC 使用步驟是一樣的。原作者:Rb.
    發表于 07-12 14:31

    LabVIEW的事件詳解

    事件6軟件退出時銷毀用戶事件和動態注冊事件引用注意:上敘步驟創建用戶事件總是最前面,先創建后使用,記住這一條就不會出錯,銷毀用戶事件和動
    發表于 09-04 23:59
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>