Я отбрасываю эту строку, посетив разные веб-сайты, чтобы попытаться понять пример использования пользовательского перечисления в реальном времени. У меня есть примеры. Но они приводят меня к путанице.Когда пользовательский перечислимый/сбор полезен?
Пример
Возьмите 1
class NumberArray
{
public int[] scores;
public NumberArray()
{
}
public NumberArray(int[] scores)
{
this.scores = scores;
}
public int[] Scores
{
get {return scores;}
}
}
Возьмите 2
public class Enumerator : IEnumerator
{
int[] scores;
int cur;
public Enumerator(int[] scores)
{
this.scores = scores;
cur = -1;
}
public Object Current
{
get {
return scores[cur];
}
}
public void Reset()
{
cur = -1;
}
public bool MoveNext()
{
cur++;
if (cur < scores.Length)
return true;
else return false;
}
}
public class Enumerable : IEnumerable
{
int[] numbers;
public void GetNumbersForEnumeration(int[] values)
{
numbers = values;
for (int i = 0; i < values.Length; i++)
numbers[i] = values[i];
}
public IEnumerator GetEnumerator()
{
return new Enumerator(numbers);
}
}
Главная
static void Main()
{
int[] arr = new int[] { 1, 2, 3, 4, 5 };
NumberArray num = new NumberArray(arr);
foreach(int val in num.Scores)
{
Console.WriteLine(val);
}
Enumerable en = new Enumerable();
en.GetNumbersForEnumeration(arr);
foreach (int i in en)
{
Console.WriteLine(i);
}
Console.ReadKey(true);
}
В дубль 2, я следовал за пользовательские итерации к итерации тот же целочисленный массив, как я сделал в принять 1. Почему я должен биений о кустом итерацию целое с помощью пользовательских итераций?
Возможно, я пропустил итерацию реального времени. Можете ли вы объяснить мне задачу, которую я не могу сделать с существующей итерационной установкой? (Я только что закончил свое обучение, поэтому дайте мне простой пример, чтобы я мог правильно его понять).
Обновление: Я взял эти примеры с некоторого сайта. В этом коде нет ничего особенного, мы можем достичь его очень просто, даже без использования пользовательской итерации, я хотел бы знать реальный сценарий, когда пользовательская итерация весьма удобна.
Извините: я ответил на заданные вами вопросы, а не на ваши вопросы. Поскольку мои ответы не приветствуются, я проголосовал за их удаление. – XXXXX
Извините. Я сделал общую декларацию. Не принимайте это всерьез. круто. – user193276