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
    +关注

    关注

    1971

    文章

    3654

    浏览量

    323786

原文标题:如何在LabVIEW中创建.net中的List

文章出处:【微信号:LabVIEW QT 修炼之路,微信公众号:LabVIEW QT 修炼之路】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    OrCAD轻松创建并调整shape的操作步骤详解

    文章来源:Cadence楷登PCB及封装资源中心 怎么OrCAD轻松创建并调整shape?操作步骤怎么样的?我们来一一详解。 如今,设计时间非常宝贵,每次设计调整时等待shape重
    发表于 11-26 17:51 4461次阅读

    VC# .Net浏览Crystal Report

    Web 服务器上发布;3、利用Crystal Report 创建的Web应用程序,使用户可以深化图表并根据需要筛选信息。 .NET
    发表于 03-04 16:55

    labview list 列表实时读取问题

    个局部变量;一个属性节点;一个调用节点;一个引用。而 局部变量、属性节点、调用节点并没在循环中,只是程序开始运行的初始化阶段调用了一次而已;这个程序是怎样实现循环显示数据到 list的,拜托各位大神了
    发表于 09-05 10:19

    LABVIEW WORD型数据怎么表示,或怎么创建

    LABVIEW WORD型数据怎么表示,或怎么创建,谢谢
    发表于 03-29 19:42

    labview调用.net的richtextbox,当内容出现中文时,selectionstart不准确的问题,请问怎么解决?

    算的,而在.net的richtextbox,偏移量按字符数量计算。比如这样一段字符串:“明天123”,labview的字节长度是7(一
    发表于 08-07 18:34

    ENV配置硬件RTC+软件RTC的步骤

    RTC2.2.编译下载验证可以看到 shell 输入 help,data 的命令已经注册到系统中了,剩下的步骤和上面硬件 RTC 使用步骤是一样的。原作者:Rb.
    发表于 07-12 14:31

    LabVIEW调用DLL的高级技巧后续资源包

    1、LabVIEW调用DLL的高级技巧2、.NET InteropAssembly Builder3、LabVIEW机器人版
    发表于 07-01 08:28 210次下载

    LabVIEW8.5文评估版软件安装步骤

    LabVIEW8.5文评估版软件安装步骤 1、双击本站下载的LabVIEW8.5评估版软件(中文版)图标如图1所示。
    发表于 03-21 12:34 1.7w次阅读
    <b class='flag-5'>LabVIEW</b>8.5<b class='flag-5'>中</b>文评估版软件安装<b class='flag-5'>步骤</b>

    鼠标HID例程()

    鼠标 HID 例程 紧接《鼠标 HID 例程(上)》一文,继续向大家介绍鼠 标 HID 例程的未完的内容。
    发表于 07-26 15:18 0次下载

    NANDFLASHWINCE_NET系统的应用设计

    NANDFLASHWINCE_NET系统的应用设计
    发表于 10-25 10:10 17次下载
    NANDFLASH<b class='flag-5'>在</b>WINCE_<b class='flag-5'>NET</b>系统<b class='flag-5'>中</b>的应用设计

    LabVIEW虚拟采集卡的创建教程资料说明

    本文档的主要内容详细介绍的是适合于使用LabVIEW进行数据采集的初学者LabVIEW虚拟采集卡的创建教程资料说明。
    发表于 01-18 08:00 48次下载
    <b class='flag-5'>LabVIEW</b><b class='flag-5'>中</b>虚拟采集卡的<b class='flag-5'>创建</b>教程资料说明

    如何创建和使用LabVIEW的LLB文件

    如何创建和使用LabVIEW的LLB文件
    发表于 11-22 16:12 0次下载

    5G AAU 功放控制和监测模块

    5G AAU 功放控制和监测模块
    发表于 10-28 12:00 2次下载
    5G AAU 功放控制和监测模块<b class='flag-5'>简</b><b class='flag-5'>析</b>

    labview与sql数据库连接5种方法

    数据库的威廉希尔官方网站 ,可以通过调用ADO.NET提供的函数来连接和操作数据库。LabVIEW,可以使用ADO.NET连接SQL数据库。具体
    的头像 发表于 01-07 16:01 4921次阅读

    岩土工程监测振弦采集仪的布设方案及实施步骤

    岩土工程监测振弦采集仪的布设方案及实施步骤 岩土工程监测,河北稳控科技振弦采集仪是一种常用的地下水位和土层压缩性监测工具。它通过采集
    的头像 发表于 05-06 13:25 257次阅读
    岩土工程监测<b class='flag-5'>中</b>振弦采集仪的布设方案及实施<b class='flag-5'>步骤</b><b class='flag-5'>简</b><b class='flag-5'>析</b>