Я пытаюсь внедрить интерфейс CRTP в свой код, но ограничение заставляет меня застрять. как реализовать ограничения, если у меня структура кода выглядит так? Это законно? Спасибо.
interface IInterface<T>
where T: IInterface<T>
{
//bla bla bla
T Member { get; set; }
}
interface ITest1<iTest2, iTest1> : IInterface<iTest2>
{
//bla bla bla
}
interface ITest2<iTest1, iTest3> : IInterface<iTest1>
{
iTest3 RefMember { get; set; }
//bla bla bla
}
interface ITest3<iTest2>
{
List<iTest2> manyTest { get; set; }
//bla bla bla
}
class Test1 : ITest1<Test2, Test1>
{
//bla bla bla
}
class Test2 : ITest2<Test1, Test3>
{
//bla bla bla
}
class Test3 : ITest3<Test2>
{
//bla bla bla
}
interface IInterface<T> where T : IInterface<T>
и др.). Я думаю, вы лучше всего объясните, что вы хотите, структура, которую вы имеете. - person NSGaga-mostly-inactive   schedule 21.04.2013ITest1<iTest2, iTest1> : Entity<iTest1> where iTest2 : ITest2<ITest1<iTest2,iTest1>,ITest3<ITest1<iTest2,iTest1>,..... (?????)
- person user2277061   schedule 21.04.2013class Blah<T> where T : Blah<T>
› Это кажется круговым (по крайней мере) в двух направлениях. Это действительно законно? › Да, это законно, и у него есть законное применение... В моем случае у меня 2 игрока, у каждого по 10 пешек. И каждая пешка будет размещена на доске размером 5 x 5. Каждая точка моей доски имеет разные ссылки на ходы. отображение такое. Каждая пешка будет копировать ссылки на ход со своей точки. thumbnails101.imagebam.com/25012/afd0fd250112805.jpg?nc - person user2277061   schedule 21.04.2013types
, кроме Pawn, Point и даже не того, что должно быть общим. - person NSGaga-mostly-inactive   schedule 21.04.2013