gpt4 book ai didi

C# - 从派生类中隐藏 UserControl 类的所有方法

转载 作者:太空宇宙 更新时间:2023-11-03 17:23:05 26 4
gpt4 key购买 nike

我有一个自定义用户控件。通常它继承 UserControl 类。但是通过这种方式它继承了UserControl的所有公共(public)方法和属性。但我想隐藏所有这些并实现我自己的一些方法和属性。

假设我有一个名为 CustomControl 的自定义控件。

public class CustomControl : UserControl

当我创建 CustomControl 的实例时:

CustomControl cControl = new CustomControl();

当我键入 cControl. 时,智能感知会为我提供从 UserControl 派生的所有方法和属性。但我只想列出在 CustomControl 类中实现的我的。

最佳答案

你可以创建一个接口(interface),然后只公开接口(interface)的方法和属性。

public interface ICustomControl {
string MyProperty { get; set;}
}

public class CustomControl : UserControl, ICustomControl {
public string MyProperty { get; set; }
}

...

ICustomControl cControl = new CustomControl();

然后 intellisense 仅显示 MyProperty 和 Object 的成员(以及扩展方法,如果有的话)。

编辑:

protected ICustomControl CustomControl { get; set; }
public Form1()
{
InitializeComponent();
CustomControl = this.customControl1;
CustomControl.MyProperty = "Hello World!"; // Access everything through here.
}

然后您可以根据需要将 CustomControl 的作用域设置为内部或 protected 内部。

关于C# - 从派生类中隐藏 UserControl 类的所有方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1759985/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com