[英]Creating a class object in C#
我正在嘗試創建一個類的對象,但它似乎不起作用,我不禁想到我從JAVA的角度來看這個:
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是班級名稱)
這是因為它超出了testCheck_Click
的范圍
public partial class Form1 : Form
{
PortChecks PortCheckObject = new PortChecks();
public Form1()
{
InitializeComponent();
}
private void testCheck_Click(object sender, EventArgs e)
{
PortCheckObject.MyMethod();
}
}
Form1
構造函數中的PortChecks PortCheckObject
是一個局部變量。
將其聲明作為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();
}
...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.