make_public
指示本机类型应具有公共程序集可访问性。
#pragma make_public(type)
参数
type 是需要具有公共程序集可访问性的类型的名称。
备注
如果要引用的本机类型来自无法更改的 .h 文件,则 make_public 会很有用。 若要在带有公共程序集可见性的类型中使用公共函数签名中的本机类型,则本机类型还必须具有公共程序集可访问性,否则编译器将发出警告。
make_public 必须在全局范围内指定,并且它仅在从声明它的位置到源代码文件的结尾有效。
可以隐式或显式将本机类型设为私有;有关详细信息,请参阅键入可见性。
示例
以下示例是包含两个本机结构的定义的 .h 文件的内容。
// make_public_pragma.h
struct Native_Struct_1 { int i; };
struct Native_Struct_2 { int i; };
以下代码示例使用头文件并说明除非您使用 make_public 将本机结构显式标记为公共,否则当您尝试在公共托管类型中的公共函数签名中使用本机结构时,编译器将生成警告。
// 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
};