Ben 2010 Visual Studio aşağıdaki sınıf oluşturmak ettik:Sorun
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);
}
}
Ama sınıfının bir örneğini oluşturmaya çalıştığınızda, ben bana danışmanlık, bir yığın taşması istisna olsun sonsuz bir döngü veya sonsuz yineleme olmamasına dikkat edin. Ben instance'a olarak aşağıda iki farklı şekilde oluşturmak denedim:
Bat bottomBat;
bottomBat = new Bat();
ve
Bat bottomBat = new Bat();
Ama program çalıştırmayı denediğinizde her iki yönde aynı hata döndürür. Ayrıca, sınıf tanımını
public
değiştiricisiyle birlikte ve denemeden de denedim.
Programlama konusunda oldukça yeniyim ve bu soruna ne neden olabileceği hakkında hiçbir fikrim yok. Yanlış bir şey mi yapıyorum?
Düzenleme:Bat
sınıf için kod ı için gerekli düşünmemiştim ... her şey şu anda, bunun için özel bir yapıcı oluşturmadıysanız var mı?
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;
}
}
burada yeterli bilgi yoktur: Ancak, istisnai durumlarda, böyle bu sorunu çözebilir. Sınıfın tüm kurucularının yanı sıra temel sınıflarının kodlarını yayınlayabilir misiniz? (Bir BCL sınıfı olan bir temel sınıfa bastığınızda durabilirsiniz) – Ani
Gönderdiğiniz kod ("playArea" referansına eksi çizgi), benim için gayet iyi çalışıyor, dolayısıyla sorun, yaptığınız bölümlerin birinde bulunmalıdır. t gönderi. –
İstenildiği gibi, Form1 sınıfı için kod ekledim –