Comme le titre dit, je voudrais déclarer un objet indexer est-ce possible de quelque manière que ce soit? Est-il possible de déclarer cela dans une interface aussi? P> cet objet [int index] code> dans une classe abstraite en tant que membre abstrait. P>
3 Réponses :
bien sûr :
public abstract class ClassWithAbstractIndexer
{
public abstract int this[int index]
{
get;
set;
}
}
Merci! J'ai essayé objet abstrait public ceci [int index]; code> alors objet public ceci [int index] {abstrait get; } code> mais aucun d'entre eux n'a travaillé. Comment est-il déclaré dans une interface?
@ Fire-dragon-dol: supprimer abstrait code> à partir de votre obtenir code> dans votre classe dérivée.
Public code> n'est pas valide dans une interface, car tous les membres de l'interface sont implicitement public code>.
Ce n'est pas une interface - mais une partie d'une déclaration de classe abstraite
Un exemple simple:
public interface ITest
{
int this[int index] { get; }
}
public class Test : ITest
{
public int this[int index]
{
get { ... }
private set { .... }
}
}
Vous pouvez le déclarer comme ceci: vous aurez la possibilité de remplacer uniquement obtenir code> ou de remplacer les deux obtenir code> et définir code>. p> p>
Cela ne compile pas.