IList List dans la classe de base de la collection?

question concerne la classe de base de collection qui implémente une propriété étrange:

protected IList List { get; }

1) Qu'est-ce que Ilist List dans la classe de base de la collection ?? ...

2) Il n'est même pas initialisé ... comment peut-on y accéder alors ...

3) Quand utiliser cette liste?

0
Quand cette propriété serait-elle utilisée? ... quel est le but?
ajouté l'auteur Sana.91, source
Eh bien c'est une propriété get avec le nom List vous pouvez y accéder par instancename.List
ajouté l'auteur V4Vendetta, source
Je pense que vous parlez de la classe abstraite publique CollectionBase: IList, ICollection, IEnumerable
ajouté l'auteur V4Vendetta, source

3 Réponses

Ce code ne compilera même pas. Les propriétés implémentées automatiquement doivent avoir des accesseurs get et set.

Il sera compilé s'il se trouve dans une classe de base abstraite et marqué avec le mot-clé abstract:

protected abstract IList List { get; }

Ensuite, il appartient aux classes dérivées d'implémenter le getter de cette propriété.

0
ajouté
ce n'est pas un code ... c'est la décoloration de la classe de base Collection d'une propriété !!!
ajouté l'auteur Sana.91, source
Veuillez lire à nouveau la question ... Je ne fais que poser des questions sur le but de la propriété IList List dans la classe Base de collection ... C'est une classe .net .. la question n'a pas de code
ajouté l'auteur Sana.91, source
Darin Dimitrov: Merci .. c'est ce que je demandais ..
ajouté l'auteur Sana.91, source
Je ne comprends pas ce que tu veux dire. Cela ressemble à un code pour moi.
ajouté l'auteur Darin Dimitrov, source
Le but est de définir une propriété appelée List qui est de type IList . Et le nom de la propriété List n'a rien à voir avec la classe générique List et ne doit pas être confondu avec. C'est juste un nom. On aurait pu appeler quoi que ce soit.
ajouté l'auteur Darin Dimitrov, source
@DarinDimitrov je pense que c'est les métadonnées (sur F12) publiées pour la classe dont il parle
ajouté l'auteur V4Vendetta, source
Si c'est dans les métadonnées, alors l'implémentation serait un ensemble privé, que vous ne voyez pas de l'extérieur
ajouté l'auteur benPearce, source

1) IList est une interface, toute classe qui est une implémentation d'un IList peut être retournée par la propriété List de votre classe. En d'autres termes, vous savez seulement qu'il peut faire la spécification d'interface de IList.

2) Vous ne pouvez pas, vous devez initialiser votre classe avant de pouvoir obtenir la liste de propriété de la classe. L'IList est initialisé en tant que classe qui implémente l'interface IList.

3) Cela dépend de la spécification de la classe. Je suppose qu'il renvoie les éléments de la liste actuelle en tant que IList.

0
ajouté
Donc, c'est juste la propriété nommée Liste ... il ne doit pas être confondu par la classe générique de la liste ou quelque chose de bien?
ajouté l'auteur Sana.91, source
Oui c'est correct
ajouté l'auteur Peter, source

En fait, dans la classe CollectionBase , le code est le suivant:

protected IList List
{
    get
    {
        return this;
    }
}

Donc, il peut être compilé sans erreur.

Lorsque les classes dérivées ou CollectionBase appellent elles-mêmes la propriété List , elles renvoient l'instance de la liste ( this ). Si vous concevez une sous-classe de CollectionBase , vous pouvez utiliser cette propriété partout où vous voulez obtenir l'instance du type IList .

0
ajouté
@Dananjay LOL, il a dit dans collection classe de base , j'ai donc examiné le code source de CollectionBase . :)
ajouté l'auteur Kirin Yao, source
bonnes années! comment le savais-tu? où est-il documenté?
ajouté l'auteur Dhananjay, source