我爱Aspx >> Asp.Net >> C# 泛型简介请注意,IFormatter 是基于对象的。您可以通过定义 IFormatter 的一般版本进行补偿:
public interface IGenericFormatter { T Deserialize(Stream serializationStream); void Serialize(Stream serializationStream,T graph); }
您可以通过包含一个基于对象的格式化程序来实现 IGenericFormatter :
public class GenericFormatter : IGenericFormatter where F : IFormatter,new() { IFormatter m_Formatter = new F(); public T Deserialize(Stream serializationStream) { return (T)m_Formatter.Deserialize(serializationStream); } public void Serialize(Stream serializationStream,T graph) { m_Formatter.Serialize(serializationStream,graph); } }
请注意一般类型参数 F 上的两个约束的用法。尽管可以原样使用 GenericFormatter <F> :
using GenericBinaryFormatter = GenericFormatter; using GenericSoapFormatter2 = GenericFormatter;
但是,您还可以将该格式化程序强类型化以使用:
Ҷƪл˵?
《Effective C#》 翻译札记[05-20]
C#实现WEB服务器[05-20]
C#中时间差的计算[05-20]
C#四种Eval测试结果:不要用Code..[05-20]
通常C#面试题[05-20]
用C#与XML创建动态分层菜单[05-20]
C#数值结果表(格式化字符串)[05-20]
用浏览器来接收C# 的程序返回的时..[05-20]
使用C# 编写扩展存储过程[05-20]
C#正则表达式应用范例[05-20]
《Effective C#》 翻译札记[05-20]
Visual Studio 2005 新功能、新特..[05-20]
对mssql出现选定的用户拥有对象而..[05-20]
常用正则表达式[05-20]
将 Web 项目从 VS2002/2003 转换..[05-20]
Visual Studio 术语表[K-Z][05-20]
使用 Visual Studio 2005 Team S..[05-20]
常用CHM帮助文档集锦下载[2007-0..[05-20]
常用.NET工具下载(包括.NET可再发..[05-20]
怎么样察看经过编译过的代码exe或..[05-20]