Value
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 )