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

  • :未知  Դ:internet  :2007-5-20 16:49:07  ؼ:c#
  • KeyValuePair 中使用的键和值类型参数当然是词典自己的一般键和值类型参数。您无疑可以在您自己的使用键和值对的一般数据结构中完成同样的工作。例如:

    public class LinkedList : IEnumerable<KEYVALUEPAIR> where K : IComparable {...}

    序列化和泛型

    .NET 允许您具有可序列化的一般类型:

    [Serializable] public class MyClass {...}

    在序列化类型时,除了持久保持对象成员的状态以外,.NET 还持久保持有关该对象及其类型的元数据。如果可序列化的类型是一般类型并且它包含绑定类型,则有关该一般类型的元数据还包含有关该绑定类型的类型信息。因此,一般类型的每个带有特定参数类型的变形都被视为唯一的类型。例如,您不能将对象类型 MyClass 序列化(而只能将其反序列化)为 MyClass 类型的对象。序列化一般类型的实例与序列化非一般类型没有什么不同。但是,在反序列化该类型时,您需要通过匹配的特定类型声明变量,并且在向下强制转换从 Deserialize 返回的 Object 时再次指定这些类型。代码块 13 显示了一般类型的序列化和反序列化。

    代码块 13. 一般类型的客户端序列化

    [Serializable] public class MyClass {...} MyClass obj1 = new MyClass(); IFormatter formatter = new BinaryFormatter();? Stream stream = new FileStream("obj.bin",FileMode.Create,FileAccess.ReadWrite); using(stream) { formatter.Serialize(stream,obj1); stream.Seek(0,SeekOrigin.Begin); MyClass obj2; obj2 = (MyClass)formatter.Deserialize(stream); }

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