0
我想知道是否有更好的方法将Interface实现为自定义控件。 我在自定义按钮控件中实现了一个接口,并且引用了我需要将按钮转换为接口类型以实现它的已实现的属性。将自定义属性添加到常见控制问题
有没有办法直接引用它?我是否需要在按钮类中创建修饰器属性,以将其暴露给外部世界?
我想知道是否有更好的方法将Interface实现为自定义控件。 我在自定义按钮控件中实现了一个接口,并且引用了我需要将按钮转换为接口类型以实现它的已实现的属性。将自定义属性添加到常见控制问题
有没有办法直接引用它?我是否需要在按钮类中创建修饰器属性,以将其暴露给外部世界?
看来您期望接口存储值集。接口只是类必须实现其所有成员的契约。即使您注释掉发生错误的行,您也会收到编译时错误,您的MyButton
类不会实现MyInterface
的所有成员。
你需要在你的MyButton
类上实现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。但是我面对的是实施的财产不能直接访问的事实。 (您的错误实施是正确的,这是我的错误) – Hugo 2012-02-08 20:18:09