Search code examples
c#derived-classbase-class

C# Use base class property value in a derived class property override


My class structure is as follows:

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;
        }
    }
}

I would like to override the AnimalId property as follows: if it is a new animal the id should be -1, but if we are updating an existing animal I would like to return the AnimalId from the base class.

This is an extremely simplified example, but I'm wondering if / how this can be done.

Thanks


Solution

  • Use 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;
            }
        }
    }