インターフェイスに値セットを保存すると思われます。インタフェースは、クラスがすべてのメンバーを実装する必要がある単なる契約です。エラーを投げている行をコメントアウトしても、MyButton
クラスですべてのメンバーが実装されていないコンパイル時エラーが発生します。MyInterface
。
クラスにstring MyProp
を実装する必要があります。
public class MyButton : System.Windows.Forms.Button, MyInterface
{
public string MyProperty
{
get { return null; }
set { /* ??? */ }
}
public string MyProp { get; set; } // <------ Implement string MyProp
}
しかし、あなたが実際にやろうとしているが、複数のクラス間の単一のプロパティを共有しているどのような場合は、代わりに、基本クラスを使用して検討してください。
public class MyControlBase
: System.Windows.Forms.Button
{
public string MyProp { get; set; }
}
public class MyButton : MyControlBase
{
public string MyProperty { get; set; }
}
-
void Example()
{
var btn = new MyButton();
var property = btn.MyProperty;
var prop = btn.MyProp;
}
複数のクラス間で単一のプロパティを共有することは、私がしたいことです。しかし、複数のタイプのコントロール、コンボボックス、テキストボックス、ボタン、グループボックス。なぜ私はInterfaceを使っているのだろう。しかし、実装されたプロパティに直接アクセスできないという事実に直面しています。 (あなたが欠けていたimplementaionのためのあなたの権利は私の誤りだった) – Hugo