Unf*_*enX 1 c# inheritance user-controls base-class
我有一个自定义用户控件.通常它继承了这个UserControl类.但通过这种方式,它继承了所有公共方法和属性UserControl.但我想隐藏所有这些并实现我自己的一些方法和属性.
假设我有一个名为的自定义控件CustomControl.
public class CustomControl : UserControl
Run Code Online (Sandbox Code Playgroud)
当我创建一个实例CustomControl:
CustomControl cControl = new CustomControl();
Run Code Online (Sandbox Code Playgroud)
当我输入cControl.intellisense 时,我提供了所有来自的方法和属性UserControl.但我想只列出我在CustomControl课堂上实施的.
谢谢
您可以创建一个接口,然后只显示该接口的方法和属性.
public interface ICustomControl {
string MyProperty { get; set;}
}
public class CustomControl : UserControl, ICustomControl {
public string MyProperty { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
...
ICustomControl cControl = new CustomControl();
Run Code Online (Sandbox Code Playgroud)
然后intellisense只显示MyProperty和Object的成员(以及扩展方法,如果有的话).
编辑:
protected ICustomControl CustomControl { get; set; }
public Form1()
{
InitializeComponent();
CustomControl = this.customControl1;
CustomControl.MyProperty = "Hello World!"; // Access everything through here.
}
Run Code Online (Sandbox Code Playgroud)
然后,如果需要,可以将CustomControl的范围设置为内部或受保护的内部.