2

なぜ「public value struct」はメソッドやコンストラクターを持つことができないのに、「value struct」はできるのでしょうか? WinRT コンポーネント ライブラリで "Vector3" のような構造体を記述し、それを別の WinRT アプリケーションで使用するにはどうすればよいですか?

4

2 に答える 2

3

構造体を「パブリック」として宣言すると、それは Windows ランタイム構造体として宣言されます。Windows ランタイムの構造体は値型です。メソッド (またはコンストラクター) を持つことはできません。

それらは、あなたが望むものではないかもしれない値によってもマーシャリングされます。

おそらく、構造体ではなくクラスを作成したいと思うでしょう。

于 2011-10-09T00:28:37.597 に答える
0

値型/構造体は、.Netの実装ではなく、従来のC構造体と同様に、メモリの「ブロック」としてマップされます。つまり、フィールドとメソッドを含めることができます。

したがって、値型には、フィールドまたはコンストラクターのみが含まれている必要があります。

Vector3を2つの部分に分割する必要があります。1つはおそらくVector3Dataと呼ばれるデータで、Vector3はそれを操作するために必要なすべてのメソッドを備えています。

于 2011-10-08T22:06:33.640 に答える