2010-05-26 7 views
0

Cela pourrait être une question stupide, mais je ne comprends pas:méthode de classe d'objet protégé de MemberwiseClone()

J'ai une classe appelée carte. Je veux faire un clone peu profond en utilisant MemberWiseClone(). En théorie La carte hérite de l'objet. Donc, il devrait être en mesure d'utiliser MemberWiseClone(), même si MWC() est protégé?

Est-ce que je manque/oublie quelque chose?

Répondre

5

La carte peut l'utiliser.

class Card 
{ 
    public Card Clone() 
    { 
     return (Card)MemberwiseClone(); 
    } 
} 
3

Vous ne pouvez appeler une méthode protégée sur un objet du type de la classe que votre code (compilation) est. Par conséquent

, une classe particulière ne peut appeler MemberwiseClone sur une instance de cette classe.
Puisque votre classe n'est pas Card (et n'hérite pas Card), vous ne pouvez pas appeler MemberwiseClone sur une instance Card.