Condividi tramite


C6504

avviso C6504: annotazione non valida: la proprietà 'Null' può essere utilizzata solo con valori di puntatore, puntatore a membro, matrice o tipo di riferimento

L'avviso indica l'utilizzo di una proprietà su un tipo di dati non compatibile. Per ulteriori informazioni sui tipi di dati supportati da proprietà, vedere Proprietà di annotazione.

Esempio

Nel codice riportato di seguito l'avviso viene generato perché non è possibile utilizzare la proprietà Null su un tipo di dati char. Il motivo per cui viene visualizzato è che Deref=1 si riferisce ai caratteri, non al puntatore ai caratteri.

// C
#include <CodeAnalysis\SourceAnnotations.h>
void f([SA_Pre(Deref=1, Null=SA_Yes)] char* pc);

// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;

void f([Pre(Deref=1, Null=Yes)] char* pc);

Per risolvere il problema, rimuovere Deref=1 come indicato nel codice di esempio seguente:

// C
#include <CodeAnalysis\SourceAnnotations.h>
void f([SA_Pre(Null=SA_Yes)] char* pc);

// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;

void f([Pre(Null=Yes)] char *pc); 

Il codice erroneo mostrato in precedenza genera inoltre l'avviso C6516 perché i conflitti di proprietà hanno provocato un'annotazione non valida.