ist möglich Schnittstelle der folgenden kompilieren, ohne zu machen:generischen Typ Cast Typeinschränkung
- machen
IFooCollection
generic - Explizit
IFooCollection.Items
aufFooCollection
und Durchführung eine explizite Umwandlung zu implementieren.
public interface IFoo
{
}
public interface IFooCollection
{
IEnumerable<IFoo> Items { get; }
}
public class FooCollection<T> : IFooCollection where T : IFoo
{
public IEnumerable<T> Items { get; set; }
}
Ich bin glücklich genug, um mit der zweiten Lösung (Implementierung der Schnittstelle explizit), möchte aber verstehen, warum ich brauche T
als IFoo
zu werfen, wenn wir eine generische Einschränkung haben angeben, dass T
Muss implementieren IFoo
.