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