C# 如何在C中继承ControlCollection#
我在VB.net中有以下代码,需要将其转换为C#C# 如何在C中继承ControlCollection#,c#,vb.net,winforms,C#,Vb.net,Winforms,我在VB.net中有以下代码,需要将其转换为C# 公共类SearchableCollection 继承ControlCollection 公共子新(所有者作为控制) 端接头 末级 当我将其转换为c#时,我得到错误“没有与所需的形式参数所有者相对应的参数” 公共类SearchableCollection:ControlCollection{ 公共SearchableControlCollection(控件所有者){ } } 有什么想法吗?代码中有几个小问题: 您已命名构造函数Searchabl
公共类SearchableCollection
继承ControlCollection
公共子新(所有者作为控制)
端接头
末级
当我将其转换为c#时,我得到错误“没有与所需的形式参数所有者相对应的参数”
公共类SearchableCollection:ControlCollection{
公共SearchableControlCollection(控件所有者){
}
}
有什么想法吗?代码中有几个小问题:
SearchableControlCollection
。名称必须与类名SearchableCollection
匹配所有者
传递给ControlCollection
的基类构造函数。添加:base(owner)
将参数传递给父构造函数public class SearchableCollection : ControlCollection
{
public SearchableCollection(Control owner)
: base(owner)
{
}
}
它不应该是
公共SearchableCollection(控件所有者){…}
?不是SearchableControlCollection
在vb.net中,您使用MyBase(owner)作为语句,但在C#中,您必须在声明中这样做:public SearchableCollection(Control owner):base(owner){…}我建议最好更改类的名称以匹配构造函数,而不是相反SearchableControlCollection
是一个比SearchableCollection
更合适的名称,因为集合是专门用于控件的。@jmchilinney这是一个非常好的观点,我必须承认我假设OP的类名与他们期望的一样您可能是对的,但是评论更多的是针对OP而不是你。C#代码中的类名与VB代码中显示的类名相匹配,但我认为这是一个不合适的名称。@jmchilney基类的名称中包含Control
,但它在派生类中被删除,同时仍然是一个特定的控件集合。当然,SearchableControlCollection
是一个更好的名称。很抱歉……我在SO questjion中输入了错误的构造函数名称……它在原始代码中是正确的。基本(所有者)部分是我忘记的。