gpt4 book ai didi

c# - 使用 BitConverter.GetBytes 的通用方法

转载 作者:行者123 更新时间:2023-11-30 21:46:47 26 4
gpt4 key购买 nike

我正在尝试使用 BitConverter.GetBytes 获取不同类型的不同对象的字节数.为此,我想编写一个通用扩展方法,而不是为我想使用的每种类型(短、长、ulong 等)编写单独的扩展方法。

这可能吗?

这是我目前为通用方法编写的(不工作的)代码:

public static byte[] Foo<T>(this T input) where T : struct
{
// error here, no match to overloads
var result = BitConverter.GetBytes(input);
// do more logic here...
return result;
}

顺便说一句,这必须符合 .NET 3.5 标准。

最佳答案

不建议这样做,但您可以动态调用 BitConverter.GetBytes 方法:

public static byte[] ToFlipped<T>(T input) where T : struct
{
var result = (byte[])typeof(BitConverter).GetMethod("GetBytes", new[] { typeof(T) })
.Invoke(null, new[] { input });
Array.Reverse(result);

return result;
}

关于c# - 使用 BitConverter.GetBytes 的通用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39005931/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com