J'ai un type spécial de dictionnaire. Je ne sais pas comment faire exactement, mais je cherche à faire la méthode get virtuelle, mais pas la méthode de jeu:C# Propriétés de l'indexeur - Une manière de virtualiser la méthode get et non la set?
public TValue this[TKey key]
{
get { ... }
set { ... }
}
Est-il possible et si oui, quelle est la combinaison correcte?
que voulez-vous atteindre par faire seulement le getter 'virtual'? Il pourrait y avoir une meilleure façon de faire cela. –
Juste essayer de rendre possible d'étendre mon "ReadOnlyDictionary". Comme il s'agit d'un dictionnaire en lecture seule, je ne supporte pas la méthode set (une exception est lancée), mais une classe d'extension pourrait vouloir effectuer un travail supplémentaire à partir de la méthode get, donc ils pourraient le modifier et le modifier. –
Vous ne devriez pas essayer de rendre la méthode "get" virtuelle, mais plutôt avoir une méthode virtuelle "OnGetCalled" et laisser la classe dérivée la surcharger. La classe dérivée ne pourra pas remplacer "get" (c'est-à-dire par la suggestion de Mark) sans appeler la version de base, donc une méthode séparée rendra le contrat explicite. –