在具有更大范围的方法中实例化类
本文关键字:方法 实例化 范围 | 更新日期: 2023-09-27 18:36:56
所以我正在做一个小的ESL炸弹游戏,但我想做一组更有效的代码。截至目前,我有这个:
public partial class Form2 : Form
{
string pinNumber;
Bomb bombA = new Bomb("A", 1, "A", 1, "A", "B", "C", "D", "Sentence");
int progress;
int wireChoice;
string ansChoice;
int timer = 600;
public Form2()
{
InitializeComponent();
timer1.Start();
Random _bombType = new Random();
int bombType = 1;
if (bombType == 1)
{
genBomb();
}
else
{
}
}
public void genBomb()
{
bombA.Pin = 6259;
bombA.Serial = "G6P4LN";
bombA.Wire = 2;
bombA.Code = "to rearrange";
bombA.Choice1 = "rearrange";
bombA.Choice2 = "to rearrange";
bombA.Choice3 = "rearranged";
bombA.Choice4 = "rearranging";
bombA.Question = "I purchased so many new outfits that I need ______ my closet.";
uiUpdate();
}
public void uiUpdate()
{
serialLbl.Text = bombA.Serial;
puzzleLbl.Text = bombA.Question;
ans1.Text = bombA.Choice1;
ans2.Text = bombA.Choice2;
ans3.Text = bombA.Choice3;
ans4.Text = bombA.Choice4;
timerLbl.Text = timer.ToString();
}
我有一个单独的带有公共变量的 Bomb 类公共类文件。但是,我必须在 Form2 字段中实例化 bombA,并在方法 genBomb() 中重新定义其变量值。
我想在该方法中创建 bombA,但这样做会导致引用 bombA.Variable 的其他方法不起作用,因为它们在该上下文中不再存在。
我怎样才能做到这一点?
范围是在声明变量或成员时定义的,不一定是在创建对象时定义的。您可以声明字段而不为其赋值:
Bomb bombA;
并在genBomb
中初始化它:
public void genBomb()
{
bombA = new Bomb("A", 1, "A", 1, "A", "B", "C", "D", "Sentence");
bombA.Pin = 6259;
....
请注意,您需要在 uiUpdate
中检查 null
值,因为没有什么可以阻止它在 genBomb
之前被调用。