Похоже, вы ожидаете, что интерфейс сохранит набор значений. Интерфейс - это просто контракт, который класс должен реализовать всем своим членам. Даже если вы закомментируете строку, которая выдает ошибку, вы получите ошибку во время компиляции, что ваш класс MyButton
не реализует все члены MyInterface
.
Вам нужно реализовать string MyProp
в вашем MyButton
классе.
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;
}