J'ai une question sur les génériques .net. Considérez le code suivant:Utilisation d'un type générique à partir d'un autre paramètre générique
public abstract class Test<TKey>
{
TKey Key { get; set; }
}
public class Wrapper<TValue, TKey>
where TValue : Test<TKey>
{
public TValue Value { get; set; }
}
Maintenant, lorsque vous utilisez ce code, je pourrais faire quelque chose comme ceci:
Wrapper<Test<int>, int> wrapper = new Wrapper<Test<int>, int>();
Le paramètre de type int doit être fourni deux fois. Est-il possible de modifier la définition de Wrapper, d'exiger que TValue soit un type générique, et d'utiliser ce paramètre de type générique 'imbriqué' du paramètre de type TKey?
peut '' test pourrait être '' SomethingInheritingFromTest à la place? Si c'est le cas je ne vois pas comment contourner le paramètre type, puisque vous n'avez pas de type, vous pouvez utiliser le même 'T', puisque vous ne savez pas ce que c'est, même si vous avez créé un base/wrapper ... gars génériques plus intelligents ici que moi, j'espère que quelqu'un m'éduque :) –