2.泛型类的功能-C#高级编程

来源:互联网 发布:陇南市乡村大数据 编辑:程序博客网 时间:2024/05/21 17:59

本文固定连接:http://blog.csdn.net/u013108312/article/details/53559518

using System;using System.Collections.Generic;namespace Wrox.ProCSharp.Generics{  public class DocumentManager<TDocument>      where TDocument : IDocument  {    private readonly Queue<TDocument> documentQueue = new Queue<TDocument>();    public void AddDocument(TDocument doc)    {      lock (this)      {        documentQueue.Enqueue(doc);      }    }    public bool IsDocumentAvailable    {      get { return documentQueue.Count > 0; }    }    public void DisplayAllDocuments()    {      foreach (TDocument doc in documentQueue)      {        Console.WriteLine(doc.Title);      }    }    public TDocument GetDocument()    {      TDocument doc = default(TDocument);      lock (this)      {        doc = documentQueue.Dequeue();      }      return doc;    }  }}
namespace Wrox.ProCSharp.Generics{  public interface IDocument  {    string Title { get; set; }    string Content { get; set; }  }  public class Document : IDocument  {    public Document()    {    }    public Document(string title, string content)    {      this.Title = title;      this.Content = content;    }    public string Title { get; set; }    public string Content { get; set; }  }}
using System;namespace Wrox.ProCSharp.Generics{  class Program  {    static void Main()    {      var dm = new DocumentManager<Document>();      dm.AddDocument(new Document("Title A", "Sample A"));      dm.AddDocument(new Document("Title B", "Sample B"));      dm.DisplayAllDocuments();      if (dm.IsDocumentAvailable)      {        Document d = dm.GetDocument();        Console.WriteLine(d.Content);      }    }  }}
2 0
原创粉丝点击