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

また、Typeには3つのクラスがあり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 に答える