なぜ「public value struct」はメソッドやコンストラクターを持つことができないのに、「value struct」はできるのでしょうか? WinRT コンポーネント ライブラリで "Vector3" のような構造体を記述し、それを別の WinRT アプリケーションで使用するにはどうすればよいですか?
2 に答える
3
構造体を「パブリック」として宣言すると、それは Windows ランタイム構造体として宣言されます。Windows ランタイムの構造体は値型です。メソッド (またはコンストラクター) を持つことはできません。
それらは、あなたが望むものではないかもしれない値によってもマーシャリングされます。
おそらく、構造体ではなくクラスを作成したいと思うでしょう。
于 2011-10-09T00:28:37.597 に答える
0
値型/構造体は、.Netの実装ではなく、従来のC構造体と同様に、メモリの「ブロック」としてマップされます。つまり、フィールドとメソッドを含めることができます。
したがって、値型には、フィールドまたはコンストラクターのみが含まれている必要があります。
Vector3を2つの部分に分割する必要があります。1つはおそらくVector3Dataと呼ばれるデータで、Vector3はそれを操作するために必要なすべてのメソッドを備えています。
于 2011-10-08T22:06:33.640 に答える