如果我在C#Base类中创建一个抽象属性,然后一个子类实现它,那么稍后一旦子类设置该属性,是否可以在我的一个Base类的方法中引用和使用该属性?
我希望将一个值从我的子类传递给基类,这样在我的基类中我可以在该Base类方法中使用它来执行一些逻辑。
甚至不是一个属性而是一个字段而不是...相同的想法......但是我需要在子类中设置该字段,如果情况......不认为甚至可能吗?如果我可以通过抽象字段在我的子类中设置某种类型的标志,那么我真的不需要属性,这样基类就可以使用该标志来实现我的子类将依赖的某些逻辑,例如发送HttpRequest。
基本上我希望能够在任何子类中使用此基数设置一个标志来表示true或false,以便Base类的SendRequest方法知道是否从我在基类中设置的几个URI中进行选择。该标志将确定在基类的SendRequest方法中使用哪种格式,因为每个子类将根据基类应该为该子类使用的URI格式而变化,以便代表子类发送HttpRequest。
答案 0 :(得分:7)
是的,这基本上是抽象属性和方法的全部目的。
答案 1 :(得分:1)
听起来像这样的东西会起作用:
class Base
{
protected Boolean Flag { get; set; }
public void Foo()
{
if (this.Flag)
{
// logic here
}
}
}
class Child : Base
{
public Child()
{
// you can set Flag anywhere you wish
this.Flag = true;
}
}
我认为你不需要abstract
。您可以在子类型中设置Flag
,然后在条件逻辑的任一类型中进行检查。