Почему следующий код должен иметь «CalcUsable», определяемый синтаксисом реализации явного интерфейса? (см. последнюю строку кода) Если я использую неявный синтаксис (т. е. public decimal CalcUsable), я получаю ошибку «непоследовательной доступности», в частности:Требуется реализация явного интерфейса, но используется только один интерфейс?
«Тип параметра ... Список (IVoucher) менее доступен чем метод CalcUsable (...)»
interface IVoucher
{
string Serial { get; }
decimal FaceValue { get; }
string DiscountType { get; }
string ApplyMsg { get; }
string RejectMsg { get; }
decimal CalcUsable(List<Product> products, List<IVoucher> vouchers);
}
// 'GiftVoucher' models the simple voucher which has no use restrictions.
//
public class GiftVoucher : IVoucher
{
public string Serial { get; private set; }
public decimal FaceValue { get; private set; }
public string DiscountType { get; private set; }
public string ApplyMsg { get; private set; }
public string RejectMsg { get; private set; }
public GiftVoucher(string serial, decimal faceValue)
{
Serial = serial;
FaceValue = faceValue;
ApplyMsg = string.Empty;
RejectMsg = string.Empty;
DiscountType = "Gift";
}
// 'CalcUsable' provides the voucher applicability logic.
//
decimal IVoucher.CalcUsable(List<Product> products, List<IVoucher> vouchers)
{
blar, blar, blar...
Попробуйте сделать свой интерфейс общедоступным – JRLambert
Спасибо, что работает! Но почему??? – CodeCabbie