在我正在使用的代码库中有一个具有签名
的方法Public Sub SetDropDownValue(Of T As Structure)(ByVal target As ListControl, ByVal value As Nullable(Of T))
我写的方法是传递一个object类型的参数。
如何将对象转换为可以传递到SetDropDownValue
方法的内容?
答案 0 :(得分:0)
不,您将无法将引用类型转换为值类型(这是Structure
约束所表示的内容)。 CLR确实允许您将值类型转换为引用类型(这称为 boxing )但是这两种不同类型的实现(和语义)之间的区别的性质使得反向不可能
你唯一能想到的就是创建一个值类型,它将对象作为一个字段引用,但也许这个问题可能暗示你是以错误的方式处理整个事情。
答案 1 :(得分:0)
如果你知道T
:
something.SetDropDownValue(target, DirectCast(value, Nullable(Of T)))
有关详细信息,请参阅此article。
如果你不知道类型T
,你就会遇到麻烦,并且必须在运行时开始反思。这很复杂,很危险,而且性能很差。