Я создал следующий класс в Visual Studio 2010:
public class Bat : Form1
{
public int BatLocation;
public void draw()
{
Pen batPen = new Pen(Color.Black);
batPen.Width = 10;
playArea.DrawRectangle(batPen, BatLocation, (picPlayArea.Height - 30), 50, 10);
}
}
Но когда я пытаюсь создать экземпляр класса, я получаю исключение переполнения стека, советуя мне убедиться, что у меня нет бесконечного цикла или бесконечной рекурсии. Я попытался создать экземпляр двумя разными способами, как показано ниже:
Bat bottomBat;
bottomBat = new Bat();
и
Bat bottomBat = new Bat();
Но оба способа возвращают одну и ту же ошибку, когда я пытаюсь запустить программу. Я также попробовал определение класса с и без модификатора public
.
Я довольно новичок в программировании и понятия не имею, что может быть причиной этой проблемы. Я что-то не так делаю?
Редактировать: Код для класса Bat
- это все, что у меня есть на данный момент, я не создал для него специальный конструктор ... Не думал, что мне это нужно?
В любом случае, вот класс Form1 во всей его полноте:
public partial class Form1 : Form
{
// Define various objects for the game
public Graphics playArea;
Bat bottomBat = new Bat();
public Form1()
{
InitializeComponent();
// Create instances of objects
playArea = picPlayArea.CreateGraphics();
//bottomBat = new Bat();
// Delegate the mouseMove event for picPlayArea
picPlayArea.MouseMove += new MouseEventHandler(picPlayArea_MouseMove);
}
private void picPlayArea_MouseMove(object sender, MouseEventArgs e)
{
bottomBat.Location = e.X;
}
private void btnExit_Click(object sender, EventArgs e)
{
string msg = "Are you sure you want to exit?",
title = "Confirm Exit";
DialogResult res = MessageBox.Show(msg, title, MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (res == DialogResult.Yes)
{
Environment.Exit(0);
}
}
private void timer1_Tick(object sender, EventArgs e)
{
// This is where most of the functionality is executed within the game
playArea.Clear(Color.White);
}
private void btnStart_Click(object sender, EventArgs e)
{
timer1.Enabled = true;
}
}