【发布时间】:2018-03-27 12:27:24
【问题描述】:
我想给函数提供int 或short 或Single 或Double。我希望一个数组以相反的顺序返回。
喜欢
fun(2.0f)将返回[0x40, 0, 0, 0]fun(0x01020304)将返回[1, 2, 3, 4]fun( (short) 0x0102)将返回[1, 2]
我试过Convert any object to a byte[]
但我无法实现我的目标。如果这个函数可以写成泛型<T>类型,我将非常学习。
public static byte[] fun(object obj)
{
if (obj == null)
return null;
BinaryFormatter bf = new BinaryFormatter();
using (MemoryStream ms = new MemoryStream())
{
bf.Serialize(ms, obj);
byte[] ar = ms.ToArray();
Array.Reverse(ar);
return ar;
}
}
在@InBetween 的回答之后,我的代码如下并且工作正常。
public static byte[] Reverse(byte[] ar )
{
Array.Reverse(ar);
return ar;
}
Reverse(BitConverter.GetBytes(2.0f);// gives me [0x40, 0, 0, 0] in a single line.
【问题讨论】:
标签: c# arrays type-conversion endianness