我从C#开始,我遇到了问题。
我创建了一个" Windows窗体应用程序"项目
我有一个名为form1的表单类,我添加了一个名为usercontrol1的UserControl类。在usercontrol1中,我有一个名为test的公共函数,它返回123。
出于某种原因,我不能这样做:
private void Form1_Load(object sender, EventArgs e)
{
UserControl usercontroltest = new usercontrol1();
usercontroltest.test();
}
我得到的错误是"用户控件不包含"
的定义答案 0 :(得分:7)
这是因为您已声明您的变量属于UserControl
类型。这意味着编译器只允许您使用UserControl
中声明的成员及其继承的类。实际对象在执行时仍为<{em>}类型,但编译器只关心您尝试用来调用方法的变量的编译时类型。
您需要更改声明以使用您的特定类:
usercontrol1
或者您可以使用隐式类型的本地变量,它会使完全具有相同的效果:
usercontrol1 usercontroltest = new usercontrol1();
这将解决眼前的问题,但是:
答案 1 :(得分:2)
var usercontroltest = new usercontrol1();
虽然这会分配一个新的UserControl usercontroltest = new usercontrol1();
,但它会将其分配给它的基类usercontrol1
。 UserControl
没有UserControl
方法。
你可能想要:
test()
代替。
答案 2 :(得分:0)
还要确保将nerdcaps用于类名(http://c2.com/cgi/wiki?CapitalizationRules)