Types 具有可变数据类型的LabView SubVI终端

Types 具有可变数据类型的LabView SubVI终端,types,type-conversion,labview,variant,typecast-operator,Types,Type Conversion,Labview,Variant,Typecast Operator,我想创建一个具有可变数据类型的输出终端的SubVI。在子VI外部,终端将连接到类型转换。我不想使用变量作为数据类型 框图 这可能吗?如果可能,如何实现?您可以使用展平到字符串VI,然后使用从字符串VI取消展平(而不是类型转换) 为什么要避免变量数据类型?您可以使用展平到字符串VI,然后使用从字符串VI取消展平(而不是类型转换) 为什么要避免变量数据类型?不,这是不可能的。只有一种数据类型能够承载所有数据类型。这是一种变体。我不知道你为什么不想用它,但那是你唯一的选择。类型转换仅适用于可转换类型

我想创建一个具有可变数据类型的输出终端的
SubVI
。在
子VI
外部,终端将连接到
类型转换
。我不想使用
变量
作为数据类型

框图


这可能吗?如果可能,如何实现?

您可以使用展平到字符串VI,然后使用从字符串VI取消展平(而不是类型转换


为什么要避免变量数据类型?

您可以使用展平到字符串VI,然后使用从字符串VI取消展平(而不是类型转换



为什么要避免变量数据类型?

不,这是不可能的。只有一种数据类型能够承载所有数据类型。这是一种变体。我不知道你为什么不想用它,但那是你唯一的选择。类型转换仅适用于可转换类型(即数字和其他一些有限的情况,如将字符串转换为字节数组)

不,这是不可能的。只有一种数据类型能够承载所有数据类型。这是一种变体。我不知道你为什么不想用它,但那是你唯一的选择。类型转换仅适用于可转换类型(即数字和其他一些有限的情况,如将字符串转换为字节数组)

我一直在进行类型转换。如果我需要程序控制下的多个解决方案,我将使用案例选择器并创建所需每种类型的实例。大小写选择器还为数据类型提供多个输出。

我一直在进行类型转换。如果我需要程序控制下的多个解决方案,我将使用案例选择器并创建所需每种类型的实例。案例选择器还为数据类型提供多个输出。

您可以尝试使用多态VI。@Khachik:如果您需要在运行时选择数据类型,则无法使用多态VI。问题中关于运行时的要求在哪里?严格来说,不必在运行时更改数据类型。不过,这会使代码更漂亮。在实际代码中,我使用的是“Variant to Data”,而不是“Type Cast”,但它也需要一个类型。我将使用常量来解决这个问题。我认为甚至不可能在运行时更改typecast的类型,因为我认为它是多态VI。您可以尝试使用多态VI。@Khachik:如果您需要在运行时选择数据类型,则不可能使用多态VI。问题中关于运行时的要求在哪里?严格来说,没有必要这样做在运行时更改数据类型。不过,这会使代码更漂亮。在实际代码中,我使用的是“Variant to Data”,而不是“Type Cast”,但它也需要一个类型。我将使用常量来解决这个问题。我认为甚至不可能在运行时更改typecast的类型,因为我认为它是一个多态VI。实际上,我使用的是
Variant
。当数据从
Variant
转换回多个不同的通用数据类型时,就会出现问题。我想将一个数据类型(应该在运行时确定)传递给dataVI的
变体的
type
终端。我不知道您案例的细节,所以我可能错了,但我觉得类在这里可以帮到您很多。是的,很可能就是这样!在几乎所有其他语言中,我都会使用面向对象编程。我知道,这在LabView中也是可能的。我不知道为什么,但在LabView中我从不使用面向对象编程。如果您熟悉OOP,那么LabView OOP应该(几乎)简单明了。这里有一个起点:上面的例子被简化了。实际上,我使用的是
Variant
。当数据从
Variant
转换回多个不同的通用数据类型时,就会出现问题。我想将一个数据类型(应该在运行时确定)传递给data
VI的
变体的
type
终端。我不知道您案例的细节,所以我可能错了,但我觉得类在这里可以帮到您很多。是的,很可能就是这样!在几乎所有其他语言中,我都会使用面向对象编程。我知道,这在LabView中也是可能的。我不知道为什么,但在LabView中我从不使用面向对象编程。如果您熟悉OOP,那么LabView OOP应该(几乎)简单明了。这是一个起点: