コントロールのいくつかのプロパティを取得しています。ここで私は(タイプPropertyInfoのPINFO付き)プロパティを取得するために使用される方法です:うまく働いたが、今私は、オプションの値を持つプロパティに直面しています、と私はことを私に伝えるエラーメッセージが表示されますgetterがオプションの値を持つプロパティの値を反映して取得する
value = pinfo.GetValue(obj, nothing)
パラメータの数が正しくありません。だから私はこの1つで私のコードを変更:
Dim index As Object() = {Nothing}
value = pinfo.GetValue(obj, index)
この時点で、私はすべてのエラーメッセージを取得できませんでしたが、このコードは良い値を取得しません。 Nothingをプロパティアクセサーによって提供されるデフォルト値で置き換えた場合にのみ機能します。
ただし、このデフォルト値は何かを事前に知ることはできません。そして、このコードは、の中にという機能があり、オプションの値を持たないプロパティを取得するので、特に1つのケースや別のコードを変更することはできません。
で
ReadOnly Property Foo(Optional ByVal Number As Integer = -1) As String
Get
If Number = -1 Then
Return "Your number is the default number: " & Number
Else
Return "Your number is " & Number
End If
End Get
End Property
:ここで問題に
をリードする場合の詳細精度が問題につながる財産の例である:私はEDIT
.NET 2.0に取り組んでいますこの種類のプロパティは、上記のコードのいずれも良い文字列を取得しません。
私の最高の推測では、一般的な目的のために最初のコードを試してみてください適切な例外をキャッチして、動的パラメータ(その場合の数)とそのタイプのデフォルト値を取得するためになるようにIこのデフォルト値でgetValue
を呼び出すことができます。
したがって、オプションのパラメータのデフォルト値を取得するにはどうすればよいですか?
こんにちは、答えはthxですが、あなたの構文は私のためには機能しません...コンパイラは中括弧(.NET 2.0)が好きではありません。私の関数はオブジェクトインスタンスのすべてのプロパティを取得しなければならず、多くの異なるオブジェクトに対して呼び出されます。 – GianT971
そして、あなたが書いた最後の行は私の試行の1つと似ています私の質問に2番目のブロックコード) – GianT971
@ GianT971:申し訳ありませんが、.NET 2を使用しています。 –