Value プロパティは、関数の実行に成功したかどうかの判断に、呼び出し元が誤って、無効な戻り値を使用していないかどうかを検出するために使用されます。 このプロパティは、InvalidCheck 属性で使用できます。
InvalidCheck 属性および Value プロパティを使用することで、関数の戻り値を判定する際に、適切な値が使用されるように配慮できます。 関数実行の成功と失敗をそれぞれ 1 と 0 を使って示す関数と、1 と -1 を使って示す関数とが混在しているときに発生しがちな問題の解決が試みられます。 結果の相違を示すために、関数ごとに微妙に異なる値が使われていると、開発者が混乱してコーディング ミスを犯してしまうことがあります。 Value プロパティで関数に注釈を付けることで、戻り値の判定に適切な値を使用するよう、呼び出し元に注意を促すことができます。
使用例
Value プロパティの使用例を次のコードに示します。
#include <CodeAnalysis\SourceAnnotations.h>
[returnvalue:SA_InvalidCheck(Value=0)] int f( ); // 1 and -1 are valid
Value=0 は、戻り値の判定に 0 を使用することは誤りであることを示しています。この関数は、1 または -1 しか返さないので、0 は無効な値です。
次のコードを使って戻り値を判定した場合、0 は有効な戻り値ではないため、呼び出し側で警告が生成されます。
if ( f() == 0 )