WinRT中的公共值结构

时间:2011-10-08 18:55:41

标签: directx windows-runtime c++-cx

为什么“公共值结构”不能有任何方法或构造函数,但“值结构”可以? 如何在WinRT组件库中编写像“Vector3”这样的结构并在另一个WinRT应用程序中使用它?

2 个答案:

答案 0 :(得分:3)

当您将结构声明为“public”时,您将其声明为Windows运行时结构。 Windows运行时中的结构是值类型。他们不能拥有方法(或构造函数)。

它们也被价值整理,可能不是你想要的。

您可能希望创建一个类而不是结构。

答案 1 :(得分:0)

Valuetypes / structs被映射为内存的“块”,就像传统的C结构一样,而不是.Net具有的实现:可以包含字段和方法。

因此值类型只需要包含字段或构造函数。

您需要将Vector3分成两部分,一部分数据可能称为Vector3Data,Vector3具有操作它所需的所有方法。