gpt4 book ai didi

c# - 使用泛型创建可重用的 Control 基类

转载 作者:行者123 更新时间:2023-11-30 17:58:47 25 4
gpt4 key购买 nike

我不知道这是否可能,但这是我的想法:

public class ValidationControl<T> where T : Control, new()
{
[Browsable(true)]
[Category("Validation")]
[DefaultValue(false)]
public bool Required { get; set; }

public ValidationControl() { Required = false; }

public virtual void RunValidation() { ... }
}

然后对于我所有的自定义控件,我可以简单地将通用控件用作可重用的基类:

public class ValidationTextBox : ValidationControl<TextBox> { }

public class ValidationComboBox : ValidationControl<ComboBox> { }

我知道我可以使用接口(interface),但我必须为我制作的每个新控件重新键入/复制并粘贴所需的属性等。此外,我无法通过这种方式为 TextBox/ComboBox 覆盖任何虚拟属性/方法。这可能吗?

最佳答案

继承与使用泛型不同。你想以一种“泛型”的方式指定你的类需要继承什么,不,那是行不通的。你已经说过了,你不能覆盖任何属性,这是因为你没有从你的 T 继承。

要使您的控件正常工作,您必须继承您的控件类型 (T)。

关于c# - 使用泛型创建可重用的 Control 基类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11883261/

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