Если у меня есть следующая структура интерфейса:
public interface IPaymentTypeBase
{
void PayNow();
double Amount { get; set; }
}
public interface IPaymentTypePayPal : IPaymentTypeBase
{
string UserName { get; set; }
string Password { get; set; }
}
public interface IPaymentMethod<T>
{
}
Тогда у меня есть следующие классы:
public class PaymentTypePayPal : IPaymentTypePayPal
{
public string UserName { get; set; }
public string Password { get; set; }
public void PayNow()
{
throw new NotImplementedException();
}
}
public class PaymentMethod<T> : IPaymentMethod<T> where T : IPaymentTypeBase
{
}
Тогда в моем веб-приложении у меня есть это;
IPaymentMethod<IPaymentTypePayPal> payer = (IPaymentMethod<IPaymentTypePayPal>) new PaymentMethod<PaymentTypePayPal>();
Теперь я хотел бы позвонить payer.PayNow();
, но я просто теряюсь в интерфейсах и т. Д. И, похоже, не могу заставить это работать.
Я считаю, что это простая вещь, но я простополностью упустить точку.
Кто-нибудь может помочь?
Изменить
Намерение здесь состоит в том, чтобы иметь набор интерфейсов, таких как PayPal, Ваучер,CreditCard, каждый из которых выполняет свои собственные функции платежного шлюза.
Поэтому я хотел бы создать экземпляр класса, который принимает Тип платежа в качестве интерфейса, и вызывать интерфейс API PayNow.