2012-01-14 2 views
2

WinRTにBuffer.BlockCopy同等の機能または戦略がありますか?境界チェックを避ける必要があるため、Array.Copyを使用することはできません。WinRTのBuffer.BlockCopy

実際にバイト配列をBitConverterのように動作するテンプレート配列にコピーする従来の.Netコードを移植する必要があります。元のコードは次のとおりです。

public T GetValue(int index) 
{ 
    T[] vals = new T[1]; 
    Buffer.BlockCopy(Buffer.ToBytes(), index * UnitSize, vals, 0, UnitSize); 
    return vals[0]; 
} 

種類は

+2

にだけで正常に動作に関しては、あなたがチェック境界を避けるために必要なぜあなたは説明できますか?もしそれがパフォーマンスのためであれば、 'Array.Copy()'が遅すぎ、 'Buffer.BlockCopy()'があなたを助けるでしょうか? – svick

+0

残念ながら、それはパフォーマンスとは関係ありません。実際にバイト配列をBitConverterのように動作するテンプレート配列にコピーする従来の.Netコードを移植する必要があります。 public T GetValue(int index){ T [] vals = new T [1];元のコードは次のとおりです。 Buffer.BlockCopy(Buffer.ToBytes()、index * UnitSize、vals、0、UnitSize); return vals [0]; } – metaxa5

+0

「T」はどのタイプでもかまいませんし、特定のタイプのセットから来たものもありますか? – svick

答えて

0

System.Buffer.BlockCopy私WinRTのアプリ