Bonjour,
Voici mon interrogation:
J'essaie de faire une classe générique ayant des énumérations type-safe imbriquées dans le genre de :
//Le type de T doit être la classe dérivée
public abstract class A<T> where T : A<T>, new()
{
public sealed partial class gen
{
private string m_Name;
public string Name { get { return m_Name; } }
private gen(string i_Name)
{
}
private gen(gen i_NewGen)
{
}
public static gen A = new gen("A");
}
}
public class B : A<B>
{
public partial class gen
{
public static gen B = new gen("B");
}
}
public class C : A<C>
{
public partial class gen
{
public static gen C = new gen("C");
}
}
public class Test
{
public void Tests()
{
string temp = B.gen.A.Name;
temp = B.gen.B.Name;
//B ne doit pas avoir accès à gen.C.Name()
temp = C.gen.A.Name;
//C ne doit pas avoir accès à gen.B.Name()
temp = C.gen.C.Name;
}
}
J'ai tenter de simplifier au maximum mon problème. Par contre, il faut absolument que la classe abstraite aille un argument Générique pointant vers sa classe dérivée.
Y a t-il un moyen pour garder un peu le même principe?