Marshalling di classi, strutture e unioni

In .NET Framework classi e strutture sono simili. Entrambe possono avere campi, proprietà ed eventi. nonché metodi static e non static. Una differenza fondamentale è data dal fatto che le strutture sono tipi di valore e le classi sono tipi di riferimento.

Nella seguente tabella sono elencate le opzioni di marshalling per le classi, le strutture e le unioni con la descrizione dell'uso e un collegamento all'esempio corrispondente di richiamo piattaforma.

Tipo Descrizione Esempio

Classe per valore.

Passa una classe con membri integer come parametro in/out, come il case gestito.

SysTime

Struttura per valore.

Passa le strutture come parametri in.

Strutture

Struttura per riferimento.

Passa le strutture come parametri in/out.

OSInfo

Struttura con strutture nidificate (semplificata).

Passa una classe che rappresenta una struttura con strutture nidificate nella funzione non gestita. La struttura viene semplificata in una sola grande struttura nel prototipo gestito.

FindFile

Struttura con strutture nidificate (non semplificata).

Passa una struttura con una struttura incorporata.

Strutture

Struttura con puntatore a un'altra struttura.

Passa una struttura che contiene un puntatore a una seconda struttura come membro.

Strutture

Matrice di strutture con integer per valore.

Passa una matrice di strutture che contengono solo valori integer come un parametro in/out. È possibile modificare i membri della matrice.

Matrici

Matrice di strutture con valori integer e stringhe per riferimento.

Passa una matrice di strutture che contengono valori integer e stringhe come un parametro out. La memoria per la matrice viene allocata dalla funzione chiamata.

OutArrayOfStructs

Unioni con tipi di valore.

Passa le unioni con tipi di valore (integer e double).

Unioni

Unioni con tipi misti.

Passa unioni con tipi misti (integer e string).

Unioni

Valori null nella struttura.

Passa un riferimento null (Nothing in Visual Basic) invece di un riferimento a un tipo di valore.

HandleRef

Vedere anche

Concetti

Tipi di dati del richiamo piattaforma
Marshalling di stringhe
Marshalling di matrici di tipi
Esempi vari di marshalling

Altre risorse

Marshalling dei dati con richiamo piattaforma