在LabVIEW中创建.net中List的步骤简析

最近有项目的个别需求需要使用.net中的一些东西来实现,如其中需要用到泛型集合list,这在c#中去创建是很简单的事情,如list lbllist = new list(); 起初我也没太在意,认为使用.net函数选板中的构造器就可以创建该实例对象,但是最后发现根本行不通,尝试了很久之后都快要放弃了,最后还是让我在微软的官网找了一些线索,最终解决了这个问题。
忽然想起之前有小伙伴在群里也问过这个问题,当时我好像给出了错误的答案,故总结一下顺便纠正之前的错误。
看完这个激动不已,在system命名空间中通过activator.createinstance 静态方法进行创建,在.net函数选板中找到invoke node,然后在右键菜单中找到“select class >> .net >> browse...”,如下图所示:
在弹出的对话框中,找到assembly选中mscorlib(4.0.0),并在下面的列表中找到system,如下图所示:
双击展开system命名空间,找到activator,如下图所示:
然后鼠标左键单击method,选择createinstance(type type),如下图所示:
此时发现改方法需要传入type参数,按图索骥找到了system命名空间中的gettype(string)静态方法,如下图所示:
找到改静态方法的方式同上述createinstance(type type)一样,这里不再赘述,如下图所示:
此时发现改方法需要传入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]],如下图所示:
实际使用中我想创建的是list对象,如下图所示:
理解之后你就可以创建原本你以为无法创建的对象实例了。


博捷芯:国内半导体划片机市场如何超越国外垄断
RVV、RVVP、AVVR是什么意思?它们有什么区别?
微软要抛弃Surface系列的真假之谜
Qualcomm和联想签订3G/4G中国专利许可协议
伺服驱动器控制模式的接线及其注意事项
在LabVIEW中创建.net中List的步骤简析
用物联网助力医疗战疫
燧原科技参加甘肃AI算力高峰论坛
2018年1-4月我国生产手机同比增长3.2%,微型计算机同比下降2%
液晶电视保养必知常识
关于iPhone8,我们能确定的有这些!提前量产惊喜嘛
Molex优化PCB插接方案推出 Coeur CST 高电流连接系统
德媒:芯片之争,中国绝非无能为力
华为卖的是物联网生态!你却说其华而不实!
PEX8716 PCIe芯片Broadcom
用在音频线上的磁环有什么作用?
全球智能家居市场突破1000亿美元,2023年增长至1570亿美元
串口驱动配置流程及电路图设计
区块链的新型数据库将如何存储比特币的交易
第十届中国国际警用装备博览会在北京国家会议中心圆满落幕