2

ParameterInfoaがリターンパラメータであるかどうかをどのように判断できますか?

以下に関数を書きましたが、何かが足りないのではないかと心配しています。

public bool IsReturnParameter(ParameterInfo parameter){
    var method = parameter.Member as MethodInfo;
    return method != null && parameter.Equals(method.ReturnParameter);
}

私はこれをいくつかの仮定に基づいていますが、これには欠陥がある可能性があります。(1)パラメーターはMethodInfoConstructorInfoまたはPropertyInfo(インデクサー)であるメンバーで宣言されます。(2)ConstructorInfoそしてPropertyInforeturnパラメータを持つことはありません。

4

2 に答える 2

7

オーバーライドやインターフェイス、ジェネリック型を正しく処理できない場合もありParameterInfo.Position == -1ますが、同等性チェックは同じように適切に見えるかどうかを確認できます。

于 2012-11-12T19:32:19.530 に答える
-1

あなたが言及していると仮定するとout int foo、あなたは欲しいですparameter.IsOut

戻り値が必要な場合は、試してみてくださいIsRetval。これまで聞いたことがありません。

于 2012-11-12T19:21:28.823 に答える