staram się osiągnąć coś takiego:Generics IAbstract <T> dziedziczy z IAbstract
interface IAbstract
{
string A { get; }
object B { get; }
}
interface IAbstract<T> : IAbstract
{
T B { get; }
}
class RealThing<T> : IAbstract<T>
{
public string A { get; private set; }
public T B { get; private set; }
}
Więc mogę zrobić coś takiego:
RealThing<string> rt = new RealThing<string>();
IAbstract ia = rt;
IAbstract<string> ias = rt;
object o = ia.B;
string s = ias.B;
Czy to możliwe?
Dobrym przykładem tego dokładnego wzorca w środowisku .NET jest ['IEnumerable'] (http://msdn.microsoft.com/en-us/library/system.collections.ienumerable.aspx) i [' IEnumerable '] (http://msdn.microsoft.com/en-us/library/9eekhta0 (v = vs.110) .aspx) gdzie' IEnumerable' ma 'IEnumerator GetEnumerator()' i 'IEnumerable ' robi dokładnie to samo, co robisz ze swoimi właściwościami za pomocą 'IEnumerator GetEnumerator()'. –