C#で取得された個々の要素のサイズはどのようになっていますか? Array
Int16[] a1 = new Int16[1024];
Int16[] a2 = new byte[1024];
Array array = ... // (either a1 or a2)
int elementSizeInBytes = array.____?
sizeof はコンパイル時の演算子であるため、sizeof は機能しません。もちろん、コンパイルすることさえできませんsizeof(array)
。sizeof(array[0])
要素の数を取得するのは簡単です。
int numElements = array.Length;
要素のサイズを返すメソッドはないようです。array / array.Lengthに割り当てられた合計スペースから計算できるようです。しかし、Array インスタンスで使用されるバイト単位の合計サイズを取得する方法は明らかではありません。
使用例:
質問は一般的なものですが、現在使用しようとしている方法は、配列バッファーの内容を WriteableBitmap にコピーすることです。
private void copyPixels2Bitmap(Array pixels, WriteableBitmap bitmap)
{
int elementSize = pixels.GetValue(0).GetType().___?;
bitmap.WritePixels(new Int32Rect(0, 0, bitmap.PixelWidth, bitmap.PixelHeight),
pixels, bitmap.PixelWidth * elementSize, 0);
}