C# - 无法从不同的类访问公共函数

Th3*_*u90 0 c#

我从C#开始,我遇到了问题.

我创建了一个"Windows窗体应用程序"项目.

我有一个名为form1的表单类,我添加了一个名为usercontrol1的UserControl类.在usercontrol1中,我有一个名为test的公共函数,它返回123.

出于某种原因,我不能这样做:

private void Form1_Load(object sender, EventArgs e)
{
 UserControl usercontroltest = new usercontrol1();
 usercontroltest.test();
} 
Run Code Online (Sandbox Code Playgroud)

我得到的错误是"用户控件不包含"的定义

Jon*_*eet 7

这是因为您已声明您的变量属于类型UserControl.这意味着编译器只允许您使用声明的成员UserControl和它继承的类.实际的对象尚型usercontrol1在执行时间,但是编译器只在乎你想用来调用该方法的变量的编译时类型.

您需要更改声明以使用您的特定类:

usercontrol1 usercontroltest = new usercontrol1();
Run Code Online (Sandbox Code Playgroud)

或者您可以使用隐式类型的局部变量,它具有完全相同的效果:

var usercontroltest = new usercontrol1();
Run Code Online (Sandbox Code Playgroud)

这将解决当前的问题,但是:

  • 您确定要在此处创建实例,而不是使用已在表单上的实例吗?
  • 您应该养成尽快遵循.NET命名约定的习惯