フォーム上の画像を処理するユーザーコントロールがあります。ただし、ソース(WebカメラまたはIDスキャンまたはその他のビデオソース)によって、ユーザーコントロールは異なります。
しかし、それらはいくつかの共通の機能を共有しているので、基本クラスを作成したいと思います。
私の他のコントロールにはすべて、必要なインターフェイス項目がいくつかあります。ただし、基本レベルでインターフェイスを宣言し、クラスレベルで実装したいと思います。しかし、仮想とオーバーライドは、私が欲しいものを取得するための最も近い方法のようです。それを行うために何かありますか、新しいクラスに基本クラスで割り当てられたインターフェイスを実装するように強制しますか?周りを見回すと、クラスを抽象化する(私は完全には理解していません)ことが始まりかもしれません。それが大丈夫かもしれないメソッドだけだったとしても、私はプロパティも使用しています。その分野では、答えを探すのに行き詰まりました。これが私がこれまでに持っているものです。私は正しい方向に進んでいますか?私は抽象クラスをまったく扱ったことがなく、インターフェースへの露出が限られています。調査の結果、私は正しい方法を持っていると思いますが、プロパティについてはよくわかりません。
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
}
}