我试图创build一个类的对象,但它似乎并没有工作,我不禁觉得我从JAVA的angular度来看这个:
public partial class Form1 : Form { public Form1() { InitializeComponent(); PortChecks PortCheckObject = new PortChecks(); } private void testCheck_Click(object sender,EventArgs e) { PortCheckObject.MyMethod(); }
使用PortCheckObject调用我的方法MyMethod时,可能会出错
(PortChecks是类名)
在特定的桌面上启动进程
创build一个应用程序钩子?
如何asynchronous打开Windows中的文件
为什么我的控制台应用程序有命令历史?
如何找出EventProperty的名字?
.NET EXE和DLL之间的堆栈/堆区别
以前的方法仍然写入数据到文本文件,而方法的新实例正在运行C#
如何在C#中监视Fileaccess
根据屏幕分辨率调整窗体控件的大小
Control.FindForm和ContainerControl.ParentForm有什么区别?
这是因为它超出了testCheck_Click的范围
public partial class Form1 : Form { PortChecks PortCheckObject = new PortChecks(); public Form1() { InitializeComponent(); } private void testCheck_Click(object sender,EventArgs e) { PortCheckObject.MyMethod(); } }
PortChecks PortCheckObject在Form1构造函数中是一个局部变量。
将其声明作为Form1类中的一个私有字段。
public partial class Form1 : Form { private PortChecks PortCheckObject = new PortChecks(); public Form1() { InitializeComponent(); } private void testCheck_Click(object sender,EventArgs e) { PortCheckObject.MyMethod(); } }
@詹姆士,
您需要一个名为“PortCheckObject”的类属性,并且可以在类的其他部分访问。
public partial class Form1 : Form { private PortChecks PortCheckObject; public Form1() { InitializeComponent(); PortCheckObject = new PortChecks(); } private void testCheck_Click(object sender,EventArgs e) { PortCheckObject.MyMethod(); } }
这是一个通用的范围问题,而不是Java与C#的问题(因为你的代码在Java中也不行)。 PortCheckObject在Form1()的范围内,而不是testCheck_Click的范围。 尝试以下操作:
public partial class Form1 : Form { private PortChecks PortCheckObject; public Form1() { InitializeComponent(); PortCheckObject = new PortChecks(); } private void testCheck_Click(object sender,EventArgs e) { PortCheckObject.MyMethod(); }
这是范围问题的一个实例。 您的testCheck_Click方法中没有范围。 做出以下更改,它应该工作:
public partial class Form1 : Form { private PortChecks MyPortCheck {get; set;} public Form1() { InitializeComponent(); MyPortCheck = new PortChecks(); } private void testCheck_Click(object sender,EventArgs e) { MyPortCheck .MyMethod(); } ... }