为什么“公共值结构”不能有任何方法或构造函数,但“值结构”可以? 如何在WinRT组件库中编写像“Vector3”这样的结构并在另一个WinRT应用程序中使用它?
答案 0 :(得分:3)
当您将结构声明为“public”时,您将其声明为Windows运行时结构。 Windows运行时中的结构是值类型。他们不能拥有方法(或构造函数)。
它们也被价值整理,可能不是你想要的。
您可能希望创建一个类而不是结构。
答案 1 :(得分:0)
Valuetypes / structs被映射为内存的“块”,就像传统的C结构一样,而不是.Net具有的实现:可以包含字段和方法。
因此值类型只需要包含字段或构造函数。
您需要将Vector3分成两部分,一部分数据可能称为Vector3Data,Vector3具有操作它所需的所有方法。