-----------------------------------------------------------
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]