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