Value
Value 屬性是用來指示無效的函式傳回值,呼叫端可能無意間測試該值,以查看函式已成功或失敗。 這個屬性 (Property) 可以用在 InvalidCheck 屬性 (Attribute) 上。
InvalidCheck 屬性 (Attribute) 和 Value 屬性 (Property) 提供了一種機制,有助於測試來自函式的正確傳回值。 它會嘗試解決當函式傳回 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 )