Fondamentalement, ce que je veux faire, est la suivante:Espace réservé "Current Type" dans les types génériques C#?
public class MySpecialCollection<T>
where T : ISomething { ... }
public interface ISomething
{
public ISomething NextElement { get; }
public ISomething PreviousElement { get; }
}
public class XSomething : ISomething { ... }
MySpecialCollection<XSomething> coll;
XSomething element = coll.GetElementByShoeSize(39);
XSomething nextElement = element.NextElement; // <-- line of interest
... sans avoir à jeter nextElement à XSomething. Des idées? Je voulais quelque chose dans le genre de ...
public interface ISomething
{
public SameType NextElement { get; }
public SameType PreviousElement { get; }
}
Merci à l'avance!
Kinda défait le point d'une interface, non? Si vous voulez utiliser cette interface générique, vous devez connaître la classe d'implémentation. – Bubblewrap
@Bubblewrap: Le but est de rendre l'interface retourne la classe d'implémentation, donc vous devez connaître la classe d'implémentation pour l'utiliser quand même. – Guffa
(et James, d'ailleurs): Je pensais déjà que c'était une option, j'espérais juste éviter la construction de la classe publique XSomething: ISomething '- je suis une sorte de base de données, donc des informations redondantes me font mal: -/Mais merci à tous les deux pour cette idée. J'évaluerai les avantages et les inconvénients de rendre l'interface générique plutôt que de lancer le type. –
Michael