http://msdn.microsoft.com/zh-cn/windows/hardware/eshywdt7(v=vs.71)
封送类、结构和联合
类和结构在 .NET Framework 中是类似的。 它们都可以具有字段、属性和事件。 它们也有静态和非静态方法。 一个显著区别是结构属于值类型而类属于引用类型。
下表列出类、结构和联合的封送处理选项;描述它们的用法;提供到相应的平台调用示例的链接。
类型 | 说明 | 示例 |
---|---|---|
通过值传递的类。 | 将具有整数成员的类作为 In/Out 参数传递,与托管的情形相同。 | |
通过值传递的结构。 | 将结构作为 In 参数传递。 | |
通过引用传递的结构。 | 将结构作为 In/Out 参数传递。 | |
具有嵌套结构的结构(单一化)。 | 传递在非托管函数中表示具有嵌套结构的结构的类。 该结构在托管原型中被单一化为一个大结构。 | |
具有嵌套结构的结构(未单一化)。 | 传递具有嵌入结构的结构。 | |
具有指向其他结构的指针的结构。 | 传递包含指向另一个结构的指针作为成员的结构。 | |
具有通过值传递的整数的结构数组。 | 传递只包含将整数作为 In/Out 参数的结构的数组。 可以更改数组的成员。 | |
具有通过引用传递的整数和字符串的结构数组。 | 将包含整数和字符串的结构数组作为 Out 参数传递。 被调用函数为该数组分配内存。 | |
具有值类型的联合。 | 传递具有值类型(整型和双精度型)的联合。 | |
具有混合类型的联合。 | 传递具有混合类型(整型和字符串类型)的联合。 | |
结构中的空值。 | 传递空引用(在 Visual Basic 中为 Nothing),而不是对值类型的引用。 |