Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/vb6/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
vb6中的动态枚举_Vb6 - Fatal编程技术网

vb6中的动态枚举

vb6中的动态枚举,vb6,Vb6,有没有办法在vb6中运行时创建枚举? 基本上,我需要创建一个产品枚举,但我将在运行时获取产品数据,这应该是不同的。否 枚举的全部目的是在编译时提供类型安全性。例如,如果函数接受枚举值作为参数,则有效输入的范围将基于枚举类型的成员进行良好定义。它不必担心如何处理无效输入,因为这将导致编译器错误 在运行时无法实现这种类型安全性,因此动态创建的枚举没有多大意义。无论如何,它们都不是语言或运行时环境支持的功能 您只需使用唯一标识符(如字符串或数值)来代替枚举。如果需要,可以创建一个数组或另一个集合类,将

有没有办法在vb6中运行时创建枚举? 基本上,我需要创建一个产品枚举,但我将在运行时获取产品数据,这应该是不同的。

枚举的全部目的是在编译时提供类型安全性。例如,如果函数接受枚举值作为参数,则有效输入的范围将基于枚举类型的成员进行良好定义。它不必担心如何处理无效输入,因为这将导致编译器错误

在运行时无法实现这种类型安全性,因此动态创建的枚举没有多大意义。无论如何,它们都不是语言或运行时环境支持的功能

您只需使用唯一标识符(如字符串或数值)来代替枚举。如果需要,可以创建一个数组或另一个集合类,将这些ID映射到唯一的键(例如,产品名称)。然后,您可以在运行时将产品动态添加到阵列中,并按名称检索它们的ID

请注意,使用此策略,您需要验证输入并手动处理任何错误。

枚举的全部目的是在编译时提供类型安全性。例如,如果函数接受枚举值作为参数,则有效输入的范围将基于枚举类型的成员进行良好定义。它不必担心如何处理无效输入,因为这将导致编译器错误

在运行时无法实现这种类型安全性,因此动态创建的枚举没有多大意义。无论如何,它们都不是语言或运行时环境支持的功能

您只需使用唯一标识符(如字符串或数值)来代替枚举。如果需要,可以创建一个数组或另一个集合类,将这些ID映射到唯一的键(例如,产品名称)。然后,您可以在运行时将产品动态添加到阵列中,并按名称检索它们的ID


请注意,使用此策略,您将需要验证输入并手动处理任何错误。

+1但在VB6中,没有编译器检查传递给需要枚举的例程的值。也没有运行时检查:(真的,MajjStuple,谢谢吗?我想这并不奇怪,C和C++有相同的行为。无论如何,我开始怀疑,如果我用VB 6来制作任何代码来回答这个标签的问题,那就太长了。-/+ 1,但是在VB6中没有编译器检查传递给常规ExpEc的值。Tun-EnUM。也没有运行时检查:(@ MajjStuple,真的吗?谢谢你的修正。我想这并不奇怪,C和C++有相同的行为。无论如何,我开始怀疑,如果我用VB 6来制作任何代码来回答这个标签的问题,那就太长了。