Indexers in Interfaces You can declare indexers in an interface.. To do this, specify the get and/or set keyword, but replace the body of the get or set accessor with a semicolon.. Any c
Trang 1Indexers in Interfaces
You can declare indexers in an interface To do this, specify the get and/or set keyword, but replace the body of the get or set accessor with a semicolon Any class or struct that implements the interface must implement the indexer accessors declared in the interface For example:
interface IRawInt
{
bool this [ int index ] { get; set; }
}
struct RawInt : IRawInt
{
public bool this [ int index ]
{
get { }
set { }
}
}
If you implement the interface indexer in a class, you can declare the indexer
implementations as virtual This allows further derived classes to override the get and set accessors For example:
class RawInt : IRawInt
{
public virtual bool this [ int index ]
{
get { }
set { }
}
}
You can also choose to implement an indexer by using the explicit interface
implementation syntax covered in Chapter 12, “Working with Inheritance.” An explicit
Trang 2implementation of an indexer is non-public and non-virtual (and so cannot be overridden) For example:
struct RawInt : IRawInt
{
bool IRawInt.this [ int index ]
{
get { }
set { }
}
}