C#-ban a foreach in-je után milyen adattípus van?
Sziasztok! Egy C#-ban írt programom listájában tárolom a játékosokat jelképező négyzeteket, illetve azok XY koordinátáit. Foreach ciklussal rajzoltatnám ki ezeket a Rajzol() függvényben, de azt írja ki a SharpDevelop hibaként, hogy: "A "jatekosok" név nem szerepel ebben a környezetben." Hogyan lehet megoldani, hogy felismerje a jatekosok változót ott? Valamilyen adattípusként deklarálnom kéne valahol? Vagy át kellene adnom paraméterként a Rajzol() függvénynek? Melyik a jó és mi a megoldás rá?
Íme a kód:
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
namespace valami
{
public class jatekos
{
public int xhely;
public int yhely;
public int szel;
public int mag;
public jatekos()
{
szel=50;
mag=50;
}
}
public partial class MainForm : Form
{
jatekos ujjatekos;
public MainForm()
{
InitializeComponent();
List<jatekos> jatekosok=new List<jatekos>();
Random vsz=new Random();
for (int i=0;i<=9;i++)
{
jatekosok.Add(new jatekos() {xhely=vsz.Next(1,200),yhely=vsz.Next(1,200)});
}
Paint += new PaintEventHandler(Rajzol);
}
void Rajzol(object sender, PaintEventArgs e)
{
foreach (jatekos ujjatekos in jatekosok)
{
e.Graphics.FillRectangle(Brushes.BlueViolet,new Rectangle(ujjatekos.xhely,ujjatekos.yhely,ujjatekos.szel,ujjatekos.mag));
}
}
}
Nem az a probléma, amit kérdezel...
Első ránézésre az a baj, hogy a Rajzol metódusban nem érheted el a konstruktorban deklarált jatekosok[]-at. Helyette a MainForm osztály adattagja kellene legyen. Az ujjatekos meg felesleges ott.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!