我想编译一个包含这个方法的项目;投射到原始类型并使用参数?
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(布尔)’的最佳重载的方法匹配具有一些无效参数”
我试图避免编写包含每一个原始类型长switch语句并为选择类型的方法添加一个参数。这是丑陋的,看起来不正确。
这是简单和优雅:
- 发送< int>的(123);
- 发送< bool>(true);
但为什么它不工作?什么是正确的做法呢?
你想用什么来实现,你是否熟悉[序列化概念](http://msdn.microsoft.com/en-us/library/4abbf6k0(v = vs.71).aspx),也许这是你可以尝试的另一种方法。 – danielQ 2012-07-06 21:04:29