Я создать следующий класс в 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
и без него.
Я довольно новичок в программировании и понятия не имею, что может вызвать эту проблему. Я делаю что-то неправильно?
Edit: Код для 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;
}
}
Существует не хватает информации здесь. Можете ли вы опубликовать код для всех конструкторов класса, а также для его базовых классов? (Вы можете остановить, как только вы нажмете базовый класс, который является классом BCL) – Ani
Код, который вы опубликовали (минус строка, ссылающаяся на «playArea'), работает для меня отлично, поэтому проблема должна заключаться в одной из частей, т. –
Я добавил в код для класса Form1, как и требовалось –