0

我有这段代码来获取默认构造函数:

Public Function f(ByVal t As System.Type) As Object
    Return t.GetConstructor(New System.Type() {}).Invoke(New Object() {})
End Function

我需要将值传递给构造函数

Public Function f(ByVal t As System.Type) As Object
    Return t.GetConstructor(New System.Type() {someInteger,someString,etc.etc}).Invoke(New Object() {}) 
End Function

我也有 3 类 Type T,都有不同的参数构造函数。对我来说,让它具有通用性很重要,因为将来类型的类T可能会随着参数的减少或增加而增加。

4

1 回答 1

4

对的,这是可能的。

但是,您将值放在Type(). 您需要指定构造函数的类型,以便它知道您要实际解析的构造函数,然后传递您希望的实际值Invoke

Public Function f(ByVal t As System.Type) As Object
    Return t.GetConstructor(New System.Type() {GetType(Integer),GetType(String)}).Invoke(New Object() {someInteger, someString}) 
End Function
于 2012-06-18T14:23:16.677 回答