C # Использование значения свойства базового класса в переопределении свойства производного класса - PullRequest
0 голосов
/ 10 октября 2018

Моя классовая структура выглядит следующим образом:

public class Animal
{
    private int _animalId;

    public virtual int AnimalId
    {
        get { return _animalId; }
    }
}

public class Dog : Animal
{
    public override int AnimalId
    {
        get 
        { 
            if (Request.Params["New_Animal"] == "true")
                return -1;
            else
                return AnimalId;
        }
    }
}

Я бы хотел переопределить свойство AnimalId следующим образом: если это новое животное, идентификатор должен быть -1, но если мы обновляемсуществующее животное, которое я хотел бы вернуть AnimalId из базового класса.

Это очень упрощенный пример, но мне интересно, если / как это можно сделать.

Спасибо

Ответы [ 2 ]

0 голосов
/ 10 октября 2018

Использовать base.AnimalId

public class Animal
{
    private int _animalId;

    public virtual int AnimalId
    {
        get { return _animalId; }
    }
}

public class Dog : Animal
{
    public override int AnimalId
    {
        get 
        { 
            if (Request.Params["New_Animal"] == "true")
                return -1;
            else
                return base.AnimalId;
        }
    }
}
0 голосов
/ 10 октября 2018

Вы можете сделать animalId для животных защищенным, а для собаки вы можете вернуть base.animalid в свойстве

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