Унаследованный объект класса не показывает метод базового класса - PullRequest
0 голосов
/ 29 мая 2019

Я бы хотел добавить в базовый класс метод, чтобы не повторять его в унаследованных классах.Есть интерфейсы для базового класса и унаследованных классов.Как только я создаю унаследованный объект класса, я не могу использовать метод базового класса, который я хочу использовать.¿Что не так?

Заранее спасибо.

public interface IRepository
{
    string GetError(string LogNumber);
}

public class Repository : IRepository
{
    public Repository()
    {
    }

    public string GetError(string LogNumber)
    {
        return "The error is " + LogNumber;
    }
}

public interface ICustomerRepository
{
    // READ
    List<Customer> ReadAll();

}

public class CustomerRepository : Repository, ICustomerRepository
{
    public CustomerRepository() : base()
    {
    }


    public List<Customer> ReadAll()
    {
        return fooFunction();
    }
}

CustomerRepository myRepository = new CustomerRepository()
myRepository.

Ответы [ 2 ]

0 голосов
/ 29 мая 2019

Я думаю, что ваш код работает нормально. Пожалуйста, проверьте ниже решение

 public Form1()
        {
            InitializeComponent();
            CustomerRepository myRepository = new CustomerRepository();
            myRepository.GetError("string error");

        }
        public interface IRepository
        {
            string GetError(string LogNumber);
        }

        public class Repository : IRepository
        {
            public Repository()
            {
            }

            public string GetError(string LogNumber)
            {
                return "The error is " + LogNumber;
            }
        }

        public interface ICustomerRepository
        {
            // READ
            List<Customer> ReadAll();

        }

        public class CustomerRepository : Repository, ICustomerRepository
        {
            public CustomerRepository() : base()
            {
            }


            public List<Customer> ReadAll()
            {
                List<Customer> list;
                return list = new List<Customer>();
            }
        }

        public class Customer
        {
        }
0 голосов
/ 29 мая 2019

Вы пытаетесь поместить эти утверждения вне класса? Если да, вы должны поместить их в метод или, предпочтительно, в основной метод. Кроме того, в конце инициализации объекта отсутствует точка с запятой.

"CustomerRepository myRepository = new CustomerRepository () ;

myRepository. "

Попробуйте исправить, вы сможете получить доступ к методу из вашего базового класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...