C# 在派生的 class 属性 覆盖中使用基础 class 属性 值
C# Use base class property value in a derived class property override
我的class结构如下:
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,但是如果我们要更新现有的动物,我想 return 来自基础 class.
的 AnimalId
这是一个极其简化的示例,但我想知道是否/如何做到这一点。
谢谢
您可以将 animal 中的 animalId 设置为 private protected,然后在 dog 中设置 return base.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;
}
}
}
我的class结构如下:
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,但是如果我们要更新现有的动物,我想 return 来自基础 class.
AnimalId
这是一个极其简化的示例,但我想知道是否/如何做到这一点。
谢谢
您可以将 animal 中的 animalId 设置为 private protected,然后在 dog 中设置 return base.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;
}
}
}