-----------------------------------------------------------

New Message on cochindotnet

-----------------------------------------------------------
From: Nasha
Message 1 in Discussion


Hi,
 
We all know about class indexers. Well you can 
also have indexers in interfaces. 
 
Interface indexers 
differ from class indexers in the following ways :-
 

        Interface accessors do not use modifiers. 
        An interface accessor does not have a body. 

        The purpose of the accessor is to indicate whether 
  the indexer is read-write, read-only, or write-only.
 
The following is an example of an interface 
indexer:
 
1. Open a new console project.
2. Create two 
interfaces i.e. Interface1 and Interface2 (as shown below in the code).
3. 
Implement the indexer in each of the interfaces as shown below.
3. Create a class 
called as MyClass(as shown below) which implements these two 
Interfaces.
 
 
Code :

  class 
  MyClass:Interface1,Interface2
 {
  private 
  int[] ArrayofStrings=new int[100];
  public 
  MyClass()
  {
   
  }
   
    public int this[int 
  index] // 
  Interface1
  {
   get
   {
    return 
  ArrayofStrings[index];
   }
   set
   {
    ArrayofStrings[index]=value;
   }
  }
  
  string 
  Interface2.this[int 
  index]
  {
   get
   {
    return 
  ArrayofStrings[index].ToString() + " 
  String";
   }   
  }
 }
   
   public class 
  MainClass
 {
  public static void 
  Main()
  {
   MyClass o = new 
  MyClass();
  
   o[1] = 
  1; // 
  interface1
  
   Console.WriteLine(((Interface2)o)[1].ToString());  // 
  Interface2
  
   Console.ReadLine();
  }
 }
   
   
   public interface 
  Interface1
 {
  int this[int 
  index]
  {
   get;
   set;
  }       
 }
  
 public interface 
  Interface2
 {
  string this[int 
  index]
  {
   get;
  }
   }

You will notice that this class has two indexers 
one coming from the Interface1 and other coming from Interface2. Indexer 
function for Interface1 has the access modifier as "public" whilst the indexer 
for Interface2 is private. 
Since the access modifier for indexer of 
Inferface1 is public you can access it directly from the main as you would have 
accessed any other class indexer.
 
But you will notice that along with indexer for 
Interface1 you can also access the indexer for interface2 by type casting 
because the Interface2 is public. 
 
Hence in this way you can have multiple 
indexers in a class using Interface Indexers.
 



-- Please post your queries and comments for my 
articles in the usergroup for the benefit of all. I hope this step from my end 
is helpful to all of us. 


Regards,

Namratha 
(Nasha)

 
 

-----------------------------------------------------------

To stop getting this e-mail, or change how often it arrives, go to your E-mail 
Settings.
http://groups.msn.com/cochindotnet/_emailsettings.msnw

Need help? If you've forgotten your password, please go to Passport Member Services.
http://groups.msn.com/_passportredir.msnw?ppmprop=help

For other questions or feedback, go to our Contact Us page.
http://groups.msn.com/contact

If you do not want to receive future e-mail from this MSN group, or if you received 
this message by mistake, please click the "Remove" link below. On the pre-addressed 
e-mail message that opens, simply click "Send". Your e-mail address will be deleted 
from this group's mailing list.
mailto:[EMAIL PROTECTED]

Reply via email to