Mi ebben a hiba? (C#)
using System;
using System.Linq;
using System.Text;
using System.Collections.Generic;
namespace Game.Global
{
public class BuyPack
{
List<slotItem> item = new List<slotItem>(5);
public void Add(slotItem objects)
{
if (item.Count < 5)
{
item.Add(objects);
}
else
{
if (item.Count >= 5)
{
item[0] = item[1];
item[1] = item[2];
item[2] = item[3];
item[3] = item[4];
item[4] = objects;
}
}
}
public slotItem Get(byte index)
{
slotItem ret = item[index];
item.Remove(ret);
return ret;
}
}
Hát, őő, nem vok benne biztos, hogy a forditó hibát jelez-e, de a listát int-el lehet indexelni.
+nem tudom, hogy csak lemaradt-e a copy-paste során, de a namespace záró } nincs benne.
Esetleg leirhatnád, milyen hibát dob. Forditási, vagy runtime, esetleg egyik se, csak nem úgy müxik ahogy akarod..
Nos szintaktikai hiba az nincs benne. Gondolom a } csak kimaradt másolásnál.
A Get-nél figyelj oda, hogy ha nincs a lista kevesebb elemet tartalmaz, mint amit te leakarsz kérni: slotItem ret = item[index]; akkor itt bizony out of range lesz.
Kijavíthatod így eseteleg:
if (index < item.Count)
{
slotItem ret = item[index];
item.Remove(ret);
return ret;
}
else return null;
És az Add-ban az if(item.Count >= 5) felesleges.
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!