Freigeben über


make_public pragma

Gibt an, dass für einen systemeigenen Typ der öffentliche Assemblyzugriff gewährt wird.

Syntax

#pragma make_public(Art )

Parameter

type
Der Name des Typs, den Sie über Barrierefreiheit für öffentliche Assemblys verfügen möchten.

Hinweise

make_public ist nützlich, wenn der systemeigene Typ, auf den Sie verweisen möchten, aus einer Headerdatei stammt, die Sie nicht ändern können. Wenn Sie den systemeigenen Typ in der Signatur einer öffentlichen Funktion in einem Typ mit Sichtbarkeit der öffentlichen Assembly verwenden möchten, muss der systemeigene Typ auch über Barrierefreiheit für öffentliche Assemblys verfügen, oder der Compiler gibt eine Warnung aus.

make_public muss auf globaler Ebene angegeben werden. Es ist nur wirksam von dem Punkt, an dem sie bis zum Ende der Quellcodedatei deklariert wird.

Der systemeigene Typ kann implizit oder explizit privat sein. Weitere Informationen finden Sie unter Typsichtbarkeit.

Beispiele

Das folgende Beispiel ist der Inhalt einer Headerdatei, die die Definitionen für zwei systemeigene Strukturen enthält.

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

Im folgenden Codebeispiel wird die Headerdatei verwendet. Es zeigt, dass der Compiler eine Warnung generiert, wenn Sie die systemeigenen Strukturen nicht explizit als öffentlich make_publickennzeichnen, wenn Sie versuchen, die systemeigenen Strukturen in der Signatur der öffentlichen Funktion in einem öffentlichen verwalteten Typ zu verwenden.

// 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
};

Siehe auch

PragmaDirektiven und Schlüsselwörter __pragma _Pragma