make_public pragma

Indica che un tipo nativo deve avere accessibilità pubblica dell'assembly.

Sintassi

#pragma make_public(type)

Parametri

type
Nome del tipo che si vuole avere l'accessibilità dell'assembly pubblico.

Osservazioni:

make_public è utile per quando il tipo nativo a cui si vuole fare riferimento proviene da un file di intestazione che non è possibile modificare. Se si vuole usare il tipo nativo nella firma di una funzione pubblica in un tipo con visibilità dell'assembly pubblico, il tipo nativo deve avere anche l'accessibilità dell'assembly pubblico oppure il compilatore genererà un avviso.

make_public deve essere specificato nell'ambito globale. È attivo solo dal punto in cui viene dichiarato fino alla fine del file di codice sorgente.

Il tipo nativo può essere implicitamente o esplicitamente privato. Per altre informazioni, vedere Visibilità dei tipi.

Esempi

L'esempio seguente è il contenuto di un file di intestazione che contiene le definizioni per due struct nativi.

// make_public_pragma.h
struct Native_Struct_1 { int i; };
struct Native_Struct_2 { int i; };

Nell'esempio di codice seguente viene utilizzato il file di intestazione. Indica che, a meno che non si contrassegnino in modo esplicito gli struct nativi come pubblici usando make_public, il compilatore genererà un avviso quando si tenta di usare gli struct nativi nella firma della funzione pubblica in un tipo gestito pubblico.

// make_public_pragma.cpp
// compile with: /c /clr /W1
#pragma warning (default : 4692)
#include "make_public_pragma.h"
#pragma make_public(Native_Struct_1)

public ref struct A {
   void Test(Native_Struct_1 u) {u.i = 0;}   // OK
   void Test(Native_Struct_2 u) {u.i = 0;}   // C4692
};

Vedi anche

Direttive Pragma e parole __pragma chiave e _Pragma