c#-从类中调用public void时出现问题

c#-从类中调用public void时出现问题,c#,C#,当我在声明我的公共表单的表单中调用public void时,它可以正常工作。但是,当我从另一个类调用它时,它不起作用。。? 我在班上也这样做过 otherForm oForm = new otherForm(); oForm.thisvoid(); 在公共空间中,我正在我的webView中加载一个Url。正如我之前所说,从我的表格中调用它,在声明的地方,它是有效的。所以函数本身不可能有什么问题 这是我的公共空间 public void thisvoid() { try

当我在声明我的公共表单的表单中调用public void时,它可以正常工作。但是,当我从另一个类调用它时,它不起作用。。? 我在班上也这样做过

otherForm oForm = new otherForm();
oForm.thisvoid();
在公共空间中,我正在我的webView中加载一个Url。正如我之前所说,从我的表格中调用它,在声明的地方,它是有效的。所以函数本身不可能有什么问题

这是我的公共空间

public void thisvoid()
    {
        try
        {
            webview.LoadUrl("http://localhost:5000);
        } catch (Exception ee)
        {
            Console.WriteLine("Error");
            Console.WriteLine(ee);
        }
    }
错误是:

System.NullReferenceException:对象引用未设置为实例 物体的形状


根据您在comments
webview
中编写的内容,对象未在构造函数中初始化。将其初始化添加到
otherForm
的构造函数中,它应该可以工作

我想,当你从
otherForm
中调用它时,它为什么会起作用,是因为你在过程中的某个地方初始化了它

示例(编辑):

当您使用其他类中的
new
关键字实例化您的
otherForm
时,例如

var oF = new otherForm();
它在什么运行时搜索无参数构造函数,该构造函数是在创建类实例时执行的类的特殊方法。它应该被命名为类

现在,第二部分-您使用的
webview
是一个对象-无论是控件、其他表单还是某个对象。它存储在类的一个字段中。但是,除非您创建它的实例,否则它是
null
——这意味着这个对象不存在,您只有它的潜在句柄。因此,您必须像这样创建此对象(类名完全由以下内容组成):

当然,WebView构造函数本身可能需要提供更多参数

所以这里发生的是:

  • 运行时遇到
    var otherForm=new otherForm()
  • 它搜索(在本例中)无参数构造函数
  • 它执行构造函数中的语句
  • 其中包括创建
    webview
    对象
  • 当它稍后在该实例上的任何方法中调用
    webView
    时,该对象存在并可以使用
  • 你错过的可能是第四点。如何包含它的示例可以在上面找到

    更多内容如下:


    所说的“它不工作”是指“不编译”还是“不显示表单等”?函数不工作,但它确实工作,当我从声明它的表单调用它时。webview对象是否在构造函数中正确创建?它是否向控制台写入任何内容?(在catch块中)因此问题出现在
    webview.LoadUrl(“http://localhost:5000)
    检查你的webview对象。你能举个例子吗?我不确定我是否明白你的意思。
    public class otherForm
    {
        WebView webview;       
    
        public otherForm()
        {
            webview = new WebView();
        }
    }