• λ我爱Aspx >> Asp.Net >> C# 泛型简介
  • C# 泛型简介

  • :未知  Դ:internet  :2007-5-20 16:49:07  ؼ: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;

    但是,您还可以将该格式化程序强类型化以使用:

    Ҷƪл˵?
  • һƪ在 C# 中通过 P/Invoke 调用Win32 DLL
    һƪ《Effective C#》 翻译札记