编程语言
首页 > 编程语言> > C#在派生类属性重写中使用基类属性值

C#在派生类属性重写中使用基类属性值

作者:互联网

我的课程结构如下:

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属性,如下所示:
如果是新动物,则id应该为-1,但是如果要更新现有动物,我想从基类中返回AnimalId.

这是一个极其简化的示例,但我想知道是否/如何完成.

谢谢

解决方法:

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

标签:base-class,derived-class,c
来源: https://codeday.me/bug/20191108/2008402.html