структура публичного значения в WinRT - PullRequest
2 голосов
/ 08 октября 2011

Почему «структура открытого значения» не может иметь метода или конструктора, а «структура значения» может? Как написать структуры типа «Vector3» в библиотеке компонентов WinRT и использовать их в другом приложении WinRT?

Ответы [ 2 ]

3 голосов
/ 09 октября 2011

Когда вы объявляете структуру как "публичную", вы объявляете ее как структуру времени выполнения Windows.Структуры в среде выполнения Windows являются типами значений.У них не может быть методов (или конструкторов).

Они также упорядочены по значению, которое может не соответствовать вашему желанию.

Возможно, вы захотите создать класс вместо структуры.

0 голосов
/ 09 октября 2011

Значения / структуры значений отображаются как «блоки» памяти во многом как традиционная структура C, а не как реализация .Net, то есть: которая может содержать поля и методы.

Таким образом, типы значений должнытолько в них есть поля или конструктор.

Вам нужно будет разделить Vector3 на две части, одна из которых, возможно, будет называться Vector3Data, а Vector3 содержит все методы, необходимые для ее манипулирования.

...