Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A foreach utasítás nem működik "type" típusú változókon, mert több példányos "interfészt" implementál, megpróbálkozhat egy adott felület példányosításával
A típus az IEnumerator<T> két vagy több példányától öröklődik, ami azt jelenti, hogy foreach a típusnak nincs egyedi felsorolása. Adja meg az IEnumerator<T> típusát, vagy használjon másik hurokszerkezetet.
Példa
A következő minta a CS1640-et hozza létre:
// CS1640.cs
using System;
using System.Collections;
using System.Collections.Generic;
public class C : IEnumerable, IEnumerable<int>, IEnumerable<string>
{
IEnumerator<int> IEnumerable<int>.GetEnumerator()
{
yield break;
}
IEnumerator<string> IEnumerable<string>.GetEnumerator()
{
yield break;
}
IEnumerator IEnumerable.GetEnumerator()
{
return (IEnumerator)((IEnumerable<string>)this).GetEnumerator();
}
}
public class Test
{
public static int Main()
{
foreach (int i in new C()){} // CS1640
// Try specifying the type of IEnumerable<T>
// foreach (int i in (IEnumerable<int>)new C()){}
return 1;
}
}