共用方式為


__nogc

注意事項注意事項

本主題僅適用於第 1 版的 Managed Extensions for C++。這個語法只應該用於維護第 1 版的程式碼。在新語法中,您不需要明確地標記為 unmanaged 型別。

明確宣告不受管理的型別。

__nogc class-specifier
__nogc struct-specifier
__nogc interface-specifier
__nogc array-specifier
__nogc pointer-specifier
__nogc new

備註

__nogc關鍵字用來明確地指定物件在標準的 C++ 堆積上配置。 此關鍵字是選擇性的。 如果您未指定__gc或__nogc的類別宣告中,它會預設為__nogc。

因為它們會從標準的 C++ 堆積配置並不會受到 managed 物件的限制,這種類型的物件很類似標準的 C++ 物件。

__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類別。 請參閱 __value ] 內嵌在實值型別, __nogc類別。

範例

在下列範例中,宣告不受管理的類別 (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
}