2016-11-30 10 views
0

は、私はそれが可能ですC#XMLコメントでは、別のメソッドのパラメータをどのように参照できますか? MethodBのXMLドキュメントで

void MethodA(int MyParam) 

のように宣言されて

/// <remarks>Before calling this method, call <see cref="MethodA"> passing zero as <paramef name="MethodA.MyParam"/> value. 

MethodA

のようなものを書きたいですか?現在、私はそれをこのように記述する必要があります。もちろん

/// <remarks>Before calling this method, call <see cref="MethodA"> passing zero as <i>MyParam<i/> value. 

、コンパイラは、もはや私はタイプミスをしたか、コード内で名前を変更した場合、パラメータ名が間違っていることを私に警告しているとして、これは潜在的なエラーにつながるん。

+1

あなたができることは確かではありませんが、実際には少しコードのような感じがします。 – DavidG

+0

はい。大きなにおい。なぜあなたのメソッドのユーザにこの責任を置くのではなく、 'MethodB'の先頭から' MethodA'を呼び出すのはなぜですか? – spender

+0

いいえ、コードは、あるメソッドのパラメータを別のメソッドから参照する必要があることを示すために書かれただけです。実際のケースは異なります(「DownloadItemsメソッドを呼び出すときに<ここにパラメータ名>が追加されていないと、このプロパティはnullになります」)。 – Alex

答えて

1

できません。

MethodAが正しく呼び出されると、IsReadyのようなパブリックプロパティが宣言され、trueに設定されます。

MethodBはそのプロパティをチェックし、値がfalseの場合はInvalidOperationExceptionをスローする必要があります。その後MethodBにこのXML COMENTを追加します。

/// <exception cref="InvalidOperationException"> 
///  <see cref="IsReady" /> is <c>false<c>. 
/// </exception> 

この方法は、あなたのインスタンスの状態が公開されているので、呼び出し側はMethodAが事前に右引数で呼び出されているかどうかを知る必要はありません、それだけでかどうかを確認することができますIsReadyがtrueです。

どのような引数を渡すと、MethodAのドキュメントには、MethodBのものではなく、私の意見では、インスタンスが「準備完了」になるはずです。

+1

ありがとうございます。コードに実際のコードが反映されていないことを説明するコメントを追加しました。単純なコードを入れて、コード自体ではなくXMLに焦点を当てようとしました。 – Alex

関連する問題