2010-03-06 3 views
0

donné cette définition de classe:Impossible de créer champ d'interface lorsque copier un objet

public class Frame 
    { 
     IFrameStream CapturedFrom; 
    } 

Je veux implémenter la méthode Clone() dans cette classe, mais le problème est:

Comment créer le champ IFrameStream dans l'instance de destination? - Je ne connais pas son implémentation, comment créer l'instance?

Répondre

1

Pensez à la sémantique. En d'autres termes, que signifie le champ CapturedFrom?

À partir de votre code, je suppose qu'il serait logique de définir le champ CapturedFrom de la nouvelle instance dans la méthode Clone() à la même valeur que le champ CapturedFrom de l'instance source. C'est ce qu'on appelle généralement une "copie superficielle".

Alternativement, vous pouvez le laisser nul. Après tout, la nouvelle instance n'a pas été capturée à partir d'un flux mais clonée à nouveau.

Questions connexes