我有一个将处理表单上的图像的用户控件。但是根据源是什么(网络摄像头或 ID 扫描或其他视频源),用户控制是不同的。
但是它们有一些共同的特性,所以我想创建一个基类。
我的其他控件都有一些我需要的界面项。我想在基础级别声明接口,并在类级别实现。但 virtual 和 override 似乎是获得我想要的最接近的方式。有没有办法,强制新类实现基类分配的接口?环顾四周,让类抽象化(我不完全理解)可能是一个开始。如果只是方法可能没问题,但我也在使用属性。在那个领域,我在寻找答案时遇到了死胡同。这是我到目前为止所拥有的。我在正确的轨道上吗?我只是根本没有使用过抽象类,只接触过有限的接口。从研究来看,我认为我的方法是正确的,只是不确定该属性。
public interface RequiredAnswer
{
void LabelRequiredFieldEmpty();
bool AnswerRequired{ get;}
}
public abstract partial class ExtImage : UserControl, RequiredAnswer
{
public virtual bool AnswerRequired
{
get
{
throw new NotImplementedException ("Answer Required");
}
}
public abstract void LabelRequiredFieldEmpty ()
{
//checkBox_AgreementAcceptedText.ForeColor = Color.Red;
}
所以我会上课
public partial class ExtImageWebCam : ExtImage
{
public override bool AnswerRequired
{
get
{
return valueFromThisClassThatMeansAnAnswerIsRequired;
}
}
public override void LabelRequiredFieldEmpty ()
{
// do something
}
}