【发布时间】:2011-08-12 02:46:13
【问题描述】:
在基类中,我想定义一个抽象的 get,但那时我并不关心集合。如何在我的子类中定义 setter?
我尝试了一些方法,但无法正常工作。例如我试过:
public class BaseClass
{
public abstract bool MyBool { get; }
}
public class ChildClass : BaseClass
{
public override bool MyBool { get; protected set;}
}
还有:
public class BaseClass
{
public bool MyBool { abstract get; }
}
public class ChildClass : BaseClass
{
public bool MyBool { override get; protected set;}
}
我知道我可以通过不在子类中使用自动属性并直接设置基础字段而不是创建 setter 来解决此问题,但我正在寻找更好的方法。
编辑:我不想在 BaseClass 中添加抽象设置器。
【问题讨论】:
-
注意:目前,我在 BaseClass 中添加了 setter,并为所有不需要实现它的 ChildClass 抛出 NotImplementedException。
-
自 2016 年以来一直在考虑此功能。有关其当前状态,请参阅 github.com/dotnet/csharplang/issues/1568。
标签: c# oop properties abstract