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.