我正在开发一个应用程序,根据需要显示的值的数据类型向用户显示不同的自定义表单控件。因此,例如,布尔值显示为复选框。但是,有些类型我不想显示。由于表单和控件是在运行时生成的,我需要构建一些逻辑来阻止这些不受支持的类型出现。
这是我试图实现的目标:
我有一个列表unsupportedTypes As List(Of Type)
,我填写了我要排除的类型:
unsupportedTypes.Add(GetType(System.Drawing.Color))
'more types removed for brevity
这符合,但在上面的行中抛出一个空引用异常,我认为这是有道理的,因为没有任何 thing 放入列表中。但是,试图创建一种颜色
unsupportedTypes.Add(GetType(New System.Drawing.Color))
甚至不会编译。
如何构建可以搜索的不同数据类型的列表(或其他集合)?
答案 0 :(得分:1)
这在运行时编译和工作,所以我真的不明白你的问题:
Dim unsupportedTypes As New List(Of Type) ' New prevents a null reference exception
unsupportedTypes.Add(GetType(Drawing.Color))
既然您已经提到i have a list: unsupportedTypes As List(Of Type)
,您是否可能忘记初始化它?