我正在尝试编译包含此方法的项目;
public void Send<T>(object o) where T : struct {
BinaryWriter bw = new BinaryWriter(stream);
bw.Write((T)o);
}
我从这种方法(工作)中得到启发;
public static T Cast<T>(object o) {
return (T)o;
}
BinaryWriter.Write 函数支持参数的原始类型,所以我想我可以这样使用它。但是,Visual Studio 说“ 'System.IO.BinaryWriter.Write(bool)' 的最佳重载方法匹配有一些无效参数”
我试图避免编写包含每个原始类型的长 switch 语句,并为选择类型的方法添加一个参数。这是丑陋的,似乎不正确。
这是简单而优雅的:
- 发送<int>(123);
- 发送<布尔>(真);
但为什么它不起作用?什么是正确的方法?