【发布时间】:2012-07-07 08:13:12
【问题描述】:
我正在尝试编译一个包含此方法的项目;
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 语句,并为选择类型的方法添加一个参数。这很丑陋,而且看起来不对。
这是简单而优雅的:
- 发送
(123); - 发送(true);
但为什么它不起作用?正确的做法是什么?
【问题讨论】:
-
你想做什么,你熟悉serialization concept,也许你可以尝试另一种方法。
标签: c# casting primitive-types