__gc

 

Veröffentlicht: Juli 2016

Hinweis

Dieses Thema gilt nur für Version 1 von Managed Extensions für C++. Diese Syntax sollte nur verwendet werden, um Code von Version 1 beizubehalten. Finden Sie unter Classes and Structs (C++ Component Extensions) Informationen zur Verwendung der entsprechenden Funktionalität in der neuen Syntax.

Deklariert einen __gc-Typ.

Syntax

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

Hinweise

Ein __gc-Typ ist eine Erweiterung der C++Programmiersprache, die die .NET Framework-Programmierung vereinfacht, indem Sie Funktionen wie Interoperabilität und Garbage Collection bereitstellt.

Hinweis

Jede Memberfunktion einer abstrakten __gc-Klasse muss definiert werden, es sei denn, die Memberfunktion ist rein virtuell.

In verwalteten Erweiterungen für C++ sind die Entsprechungen zu einer C#-Klasse und einer C#-Struktur wie folgt:

Verwaltete Erweiterungen für C++

C#

Weitere Informationen

"__gc struct" oder "__gc class"

Klasse

class-Schlüsselwort

"__value struct" oder "__value class"

struct

struct-Schlüsselwort

Beispiel

Im folgenden Beispiel wird eine verwaltete Klasse (X) mit einem öffentlichen Datenmember deklariert, der durch einen verwalteten Zeiger bearbeitet wird:

// keyword__gc.cpp
// compile with: /clr:oldSyntax
#using <mscorlib.dll>
using namespace System;

__gc class X {
public:
   int i;
   int ReturnInt() { return 5; }
};

int main() {
   // X is a __gc class, so px is a __gc pointer
   X* px;
   px = new X;   // creates a managed object of type X
   Console::WriteLine(px->i);

   px->i = 4;   // modifies X::i through px
   Console::WriteLine(px->i);

   int n = px->ReturnInt();   // calls X::ReturnInt through px
   Console::WriteLine(n);
}

Ausgabe

0
4
5