Nedávno jsem se pustil do programování her v C# podle knihy Programuje hry v jazyce C# od Toma Millera a mám tam problém. V jednom kódu jsem měl použít příkaz for each, jenže mi to vyhazuje chybu. Nejsem žádný odborník, takže prosím o radu.
Zde je kód, který mi ukazuje chybu. Zvýrazněné slova jsou ty, které mám podtržené v programu jako chybu. Používám Microsoft C# 2005 HomeEdition.
public HerniJadro(Framework f)
{
// uloží konstrukci
sampleFramework = f;
for each (AdapterInformation (ai in Manager.Adapters)
{
EnumAdapterInformation adapterInfo = new EnumAdapterInformation();
// Uložíme nějaké informace.
adapterInfo.AdapterOrdinal = (uint)ai.Adapter; // pořadí
adapterInfo.AdapterInformation = ai.Information; // informace
// Získáme seznam všech obrazových režimů daného adaptéru.
// Vytvoříme dočasný seznam všech obrazových formátů daného adaptéru.
adapterInfoFormatList.Clear();
// Nyní zkontrolujeme, které formáty jsou podporovány.
for(int i = 0; i < allowedFormats.Lenght; i++)
{
// Prověříme, zda každý podporovaný obrazový režim odpovídá tomuto formátu.
for each(DisplayMode (dm in ai.SupportedDisplayModes[allowedFormats[i]])
{
if ( (dm.Width < minimumWidth) || (dm.Height < minimumHeight) || (dm.Width > maximumWidth) || (dm.Height > maximumHeight) || (dm.RefreshRate < minimumRefresh) || (dm.RefreshRate > maximumRefresh))
{
continue; // formát není správný
}
// Přidáme obrazový režim do seznamu.
adapterInfo.displayModeList.Add(dm);
// Přidáme tento formát do seznamu, pokud v něm ještě není.
if (!adapterFormatList.Add(dm.Format))
{
adapterFormatList.Add(currentAdapterMode.Format);
}
}
}
}