Valid
A propriedade Valid especifica se um valor satisfaz as restrições de validade do seu tipo. Essa propriedade é permitida em atributos pré e pós e pode ser usada em todos tipos de dados.
A propriedade Valid deve ser definida usando um dos seguintes valores:
SA_Yes - o valor é válido.
SA_No - o valor é inválido.
SA_Maybe - o valor pode ser válido.
As restrições de validade para os vários tipos internos são os seguintes:
Tipos de integrais e de ponto flutuante – o valor foi inicializado, ou seja, ele não contém dados inválidos.
BOOL – o valor é verdadeiro ou falso.
Tipos ponteiro – o ponteiro é NULL ou aponta para uma localidade acessível da memória. O valor apontado na localidade pelo ponteiro não é necessariamente válido. A validade desse valor é determinada pelo valor da propriedade Valid para um nível a que se referencia acima daquele do valor do ponteiro.
Tipos de referência – o mesmo que tipos ponteiro, exceto que um tipo de referência não pode ser NULL.
Exemplo
O código a seguir mostra como usar a propriedade Valid:
// C
#include <CodeAnalysis\SourceAnnotations.h>
void f([SA_Pre(Valid=SA_Yes) ] char *pc);
// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
void f([Pre(Valid=Yes) ] char *pc);