Mega Code Archive

 
Categories / C# / Class Interface
 

Interface demo

/* Learning C#  by Jesse Liberty Publisher: O'Reilly  ISBN: 0596003765 */  using System;  namespace InterfaceDemo  {      interface IStorable      {          void Read();          void Write(object obj);          int Status { get; set; }      }      // here's the new interface      interface ICompressible      {          void Compress();          void Decompress();      }      // Document implements both interfaces      class Document : IStorable, ICompressible      {          // the document constructor          public Document(string s)          {              Console.WriteLine("Creating document with: {0}", s);          }          // implement IStorable          public void Read()          {              Console.WriteLine(                  "Implementing the Read Method for IStorable");          }          public void Write(object o)          {              Console.WriteLine(                  "Implementing the Write Method for IStorable");          }          public int Status          {              get { return status; }              set { status = value; }          }          // implement ICompressible          public void Compress()          {              Console.WriteLine("Implementing Compress");          }            public void Decompress()          {              Console.WriteLine("Implementing Decompress");          }          // hold the data for IStorable's Status property          private int status = 0;      }     public class TesterInterfaceDemo2     {        public void Run()        {            Document doc = new Document("Test Document");            doc.Status = -1;            doc.Read();            doc.Compress();            Console.WriteLine("Document Status: {0}", doc.Status);        }        [STAThread]        static void Main()        {           TesterInterfaceDemo2 t = new TesterInterfaceDemo2();           t.Run();        }     }  }