Per qualche motivo sto combattendo per implementare una proprietà da un'interfaccia generica utilizzando una classe base generica come segue:classe generica di base che eredita da un'interfaccia generica
public interface IParent<TChild> where TChild : IChild
{
TChild Child { get; }
}
public interface IChild { }
poi ho una classe di base:
public class ParentBase<TChild> : IParent<TChild> where TChild : IChild
{
private TChild _child;
public ParentBase(TChild child)
{
this._child = child;
}
#region IParent<TChild> Members
public TChild Child
{
get { return _child; }
}
#endregion
}
ora ho un derivato e figlio oggetto nuovo genitore come segue:
public class MyChild : IChild { }
public class MyParent : ParentBase<MyChild>, IParent<IChild>
{
public MyParent(MyChild child)
: base(child)
{
}
}
I wan t creare un'istanza di esso e ottenere il (tipo di interfaccia) abstract di passare ai consumatori come segue:
IParent<IChild> parent = new MyParent(new MyChild());
Ma per qualche motivo non può implementare correttamente il TChild, anche se ho definito la proprietà public TChild Child
sul ParentBase, il il compilatore dice che non è implementato, anche se provo a implementarlo esplicitamente. Come puoi vedere, i vincoli arrivano fino alla classe base.
Quale versione di C# stai usando? – Oded
Sto usando C# 4 (.NET 4) – Andre