__nogc
發佈時間: 2016年4月
注意事項 |
---|
本主題只適用於 Managed Extensions for C++ 第 1 版。 這個語法只可用於維護第 1 版的程式碼。 在新語法中,您不需要將類型明確標記為 Unmanaged。 |
明確宣告 Unmanaged 類型。
語法
__nogc
class-specifier
__nogc
struct-specifier
__nogc
interface-specifier
__nogc
array-specifier
__nogc
pointer-specifier
__nogc
new
備註
__nogc 關鍵字可用來明確指定將物件配置在標準 C++ 堆積上。 這個關鍵字為選擇項。 如果您未在類別宣告前面指定 __gc 或 __nogc,則它會預設為 __nogc。
這種類型的物件類似標準 C++ 物件,這類物件會從標準 C++ 堆積進行配置,而且不受 Managed 物件的限制影響。
__nogc 關鍵字也可在 __value 類型的物件明確配置在標準 C++ 堆積上時使用。
// keyword__nogc.cpp
// compile with: /clr:oldSyntax
#using <mscorlib.dll>
__value struct V {
int i;
};
int main() {
V * v = __nogc new V;
v->i = 10;
delete v;
}
注意事項 |
---|
__nogc 關鍵字也可以套用至陣列和指標類型。 |
gc 指標不可以是 __nogc 類別的成員。 如需在 __nogc 類別中嵌入實值類型的方針,請參閱 __value。
範例
下列範例會宣告 Unmanaged 類別 (X) 並且具現化及修改物件:
// keyword__nogc_2.cpp
// compile with: /clr:oldSyntax
#using <mscorlib.dll>
using namespace System;
__nogc class X {
public:
int i;
};
int main() {
X* x; // declares an unmanaged pointer of type X
x = new X(); // creates unmanaged object of type X on the C++ heap
Console::WriteLine(x->i);
x->i = 4; // modifies unmanaged object
Console::WriteLine(x->i);
delete x; // call C++ delete operator to clean up resource
}
48378256 4