make_public
表示原生型別應該有公用的組件存取範圍。
#pragma make_public(type)
參數
type是您想要擁有公用的組件的存取範圍的型別名稱。
備註
make_public對於您不能變更的.h 檔中您想要參考原生型別時很有用。 如果您想要使用型別中的公用函式的簽章中的原生型別具有公用的組件可視性,原生型別也必須具有公用的組件存取範圍,或編譯器會發出警告。
make_public必須指定在全域範圍,而且才會生效從該點在它被宣告透過原始程式碼檔的結尾。
原生型別可能是隱含或明確地私人 ; 請參閱型別可視性如需詳細資訊。
範例
下列範例是包含兩個原生結構的定義.h 檔案的內容。
// make_public_pragma.h
struct Native_Struct_1 { int i; };
struct Native_Struct_2 { int i; };
下列程式碼範例會消耗的標頭檔,並顯示,除非您明確地標示為 public,原生結構使用make_public,編譯器會產生警告,當您嘗試使用公開 managed 型別中的公用函式的簽章中的原生結構。
// 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
};