封送类、结构和联合

类和结构在 .NET Framework 中是类似的。 它们都可以具有字段、属性和事件。 它们也有静态和非静态方法。 一个显著区别是结构属于值类型而类属于引用类型。

下表列出类、结构和联合的封送处理选项;描述它们的用法;提供到相应的平台调用示例的链接。

类型

说明

示例

通过值传递的类。

将具有整数成员的类作为 In/Out 参数传递,与托管的情形相同。

SysTime

通过值传递的结构。

将结构作为 In 参数传递。

结构

通过引用传递的结构。

将结构作为 In/Out 参数传递。

OSInfo

具有嵌套结构的结构(单一化)。

传递在非托管函数中表示具有嵌套结构的结构的类。 该结构在托管原型中被单一化为一个大结构。

FindFile

具有嵌套结构的结构(未单一化)。

传递具有嵌入结构的结构。

结构

具有指向其他结构的指针的结构。

传递包含指向另一个结构的指针作为成员的结构。

结构

具有通过值传递的整数的结构数组。

传递只包含将整数作为 In/Out 参数的结构的数组。 可以更改数组的成员。

数组

具有通过引用传递的整数和字符串的结构数组。

将包含整数和字符串的结构数组作为 Out 参数传递。 被调用函数为该数组分配内存。

OutArrayOfStructs

具有值类型的联合。

传递具有值类型(整型和双精度型)的联合。

Unions

具有混合类型的联合。

传递具有混合类型(整型和字符串类型)的联合。

Unions

结构中的空值。

传递空引用(在 Visual Basic 中为 Nothing),而不是对值类型的引用。

HandleRef

请参见

概念

平台调用数据类型

封送处理字符串

封送类型数组

其他封送处理示例

其他资源

用平台调用封送数据