我有字节数组:
byte[] alldata = new byte[1024];
Run Code Online (Sandbox Code Playgroud)
然后我需要将此数据转换为UInt32:
UInt32[] block32 = new UInt32[(int)Math.Ceiling((double)alldata.Length / 4)];
Buffer.BlockCopy(alldata, 0, block32, 0, alldata.Length);
Run Code Online (Sandbox Code Playgroud)
在此之后我需要转换block32回byte数组.
现在的问题是我是否能有block32阵只是我的一个32位的参考阵列byte阵列以避免转换为UInt32与回?
Jon*_*eet 12
你的问题并不完全清楚 - 但是引用只是对一个对象的引用,而一个数组对象"知道"它的真实类型......你不能只把它uint[]当作一个对象,byte[]反之亦然.
现在你可以做的是隐藏在另一个对象后面.你可以有一个单字节数组,它在a ByteArrayView和a 之间共享,UInt32ArrayView其中每个类都知道如何处理单个底层字节数组.你必须自己编写这些类 - 我不相信它们存在于现有框架中的任何地方.
你可以创建一个抽象类或接口,这些不同的类也会实现,例如
class ByteArrayView : IArrayView<byte>
class UInt32ArrayView : IArrayView<uint>
Run Code Online (Sandbox Code Playgroud)
(或者只是IList<T>恰当地实施,当然......)
| 归档时间: |
|
| 查看次数: |
756 次 |
| 最近记录: |