J'ai une classe abstraite, Payment, qui est mise en œuvre par plusieurs PaymentTypes.
public abstract class Payment
{
protected int contract;
public Payment(int contract)
{
this.contract = contract;
}
public abstract bool Aprove();
}
et ensuite, deux classes qui l'implémentent
public class PaymentA : Payment
{
public PaymentA(int contract) : base(contract)
{
this.contract = contract;
}
public override bool Aprove()
{
return true;
}
}
public class PaymentB : Payment
{
public PaymentB(int contract) : base(contract)
{
this.contract = contract;
}
public override bool Aprove()
{
return true;
}
}
Maintenant, j'ai besoin de créer le paiement A ou le paiement B en fonction d'un champ du formulaire.
static void Main(string[] Args)
{
int contract = 1;
Payment payment;
switch (rbtPaymentType)
{
case (int)EPaymentTypes.A:
payment = new PaymentA(contract);
break;
case (int)EPaymentTypes.B:
payment = new PaymentB(contract);
break;
}
payment.Aprove(); //Use of unassigned local variable
}
J'ai deux questions :
1 - Est-il bien construit pour que je puisse appeler payment.Aprove() quel que soit le type de paiement ?
2 - Comment puis-je faire l'appel de méthode si l'objet n'est pas initialisé ? J'obtiens l'erreur "Use of unassigned local variable".
Merci d'avance