Vererbung von generischen Schnittstellen

Ich weiß nicht, wie ein problem zu lösen, mit generischen Schnittstellen.

Generische Schnittstelle dar, die Fabrik für Objekte:

interface IFactory<T>
{
    //get created object
    T Get();    
}

Schnittstelle repräsentiert Fabrik für Computer (Computer-Klasse) specyfing der Regel ab Werk:

interface IComputerFactory<T> : IFactory<T> where T : Computer
{
    //get created computer
    new Computer Get();
}

Generic interface stellt spezielle Fabrik für Objekte, die cloneable (implementiert das interface System.ICloneable):

interface ISpecialFactory<T> where T : ICloneable, IFactory<T>
{
    //get created object
    T Get();
}

Klasse repräsentiert Fabrik für Computer (Computer-Klasse) und cloneable Objekte:

class MyFactory<T> : IComputerFactory<Computer>, ISpecialFactory<T>
{

}

Bekomme ich compiler-Fehlermeldungen In MyFactory Klasse:

The type 'T' cannot be used as type parameter 'T' in the generic type or method 'exer.ISpecialFactory<T>'. There is no boxing conversion or type parameter conversion from 'T' to 'exer.IFactory<T>'.   

The type 'T' cannot be used as type parameter 'T' in the generic type or method 'exer.ISpecialFactory<T>'. There is no boxing conversion or type parameter conversion from 'T' to 'System.ICloneable'.  
InformationsquelleAutor Matt | 2013-03-22
Schreibe einen Kommentar