Interface Indexers


An interface can specify an indexer. A one-dimensional indexer declared in an interface has this general form:

 // interface indexer element-type this[int index] {   get;   set; }

As before, only get or set will be present for read-only or write-only indexers, respectively.

Here is another version of ISeries that adds a read-only indexer that returns the i-th element in the series:

 // Add an indexer in an interface. using System; public interface ISeries {   // an interface property   int next {     get; // return the next number in series     set; // set next number   }   // an interface indexer   int this[int index] {     get; // return the specified number in series   } } // Implement ISeries. class ByTwos : ISeries {   int val;   public ByTwos() {     val = 0;   }   // get or set value using a property   public int next {     get {       val += 2;       return val;     }     set {       val = value;     }   }   // get a value using an index   public int this[int index] {     get {       val = 0;       for(int i=0; i<index; i++)         val += 2;       return val;     }   } } // Demonstrate an interface indexer. class SeriesDemo4 {   public static void Main() {     ByTwos ob = new ByTwos();     // access series through a property     for(int i=0; i < 5; i++)       Console.WriteLine("Next value is " + ob.next);     Console.WriteLine("\nStarting at 21");     ob.next = 21;     for(int i=0; i < 5; i++)       Console.WriteLine("Next value is " +                          ob.next);     Console.WriteLine("\nResetting to 0");     ob.next = 0;     // access series through an indexer     for(int i=0; i < 5; i++)       Console.WriteLine("Next value is " + ob[i]);   } }

The output from this program is shown here:

 Next value is 2 Next value is 4 Next value is 6 Next value is 8 Next value is 10 Starting at 21 Next value is 23 Next value is 25 Next value is 27 Next value is 29 Next value is 31 Resetting to 0 Next value is 0 Next value is 2 Next value is 4 Next value is 6 Next value is 8




C# 2.0(c) The Complete Reference
C# 2.0: The Complete Reference (Complete Reference Series)
ISBN: 0072262095
EAN: 2147483647
Year: 2006
Pages: 300

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net