Existe-t-il un moyen de transformer une classe de base en sa classe dérivée?Transformer une classe en une classe dérivée
Voici un exemple simple de deux classes:
namespace BLL
{
public class Contact
{
public int ContactID { get; set; }
public string Name { get; set; }
public Contact(){}
}
}
namespace BLL
{
public class SpecialContact : Contact
{
public SpecialContact(){}
}
}
Idéalement, je pouvais faire quelque chose comme ceci:
Contact contact = new Contact();
SpecialContact specialContact = new SpecialContact();
contact.ContactID = 123;
contact.Name = "Jeff";
specialContact = contact;
Ce code bien sûr renvoie une erreur. En dehors de l'écriture d'un autre constructeur pour SpecialContact ou d'une méthode qui définit chaque propriété, existe-t-il une autre solution?
Cela n'a aucun sens. Un contact spécial n'est pas un contact. Que signifierait * transformer * un contact en un contact spécial? –
@kerrek - la logique du domaine peut appeler un changement de contrat dans un contrat spécial. Mais ce n'est pas (ne devrait pas) être possible avec quelque chose comme un typecast dans le code. –
Merci à tous. C'est logique pourquoi vous ne pouvez pas effectuer cette action. – Josh