C#实现一个迭代器
刚刚学习C#,看着书上的例子敲代码,运行了下报错如下:
错误 1 “CH11Ex03.Primes”不包含“GetEnumerator”的公共定义,因此 foreach 语句不能作用于“CH11Ex03.Primes”类型的变量
这个控制台程序是找出2~100之间的素数,并打印出来。
下面是新建的Primes类
下面这段是主程序:
请达人帮我看看哪里有问题?
错误 1 “CH11Ex03.Primes”不包含“GetEnumerator”的公共定义,因此 foreach 语句不能作用于“CH11Ex03.Primes”类型的变量
这个控制台程序是找出2~100之间的素数,并打印出来。
下面是新建的Primes类
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace CH11Ex03
{
public class Primes
{
private long min;
private long max;
public Primes(): this(2, 100)
{
}
public Primes(long Min, long Max)
{
if (min<2)
{
min = Min;
}
else
{
min = Min;
}
max = Max;
}
public IEnumerator GetIEnumerator()
{
for (long possiblePrimer = min; possiblePrimer <= max; possiblePrimer++ )
{
bool flag = true;
for (long factor = 2; factor < (long)Math.Floor(Math.Sqrt(possiblePrimer)); factor++)
{
if (0 == possiblePrimer%factor)
{
flag = false;
break;
}
}
if (flag)
{
yield return possiblePrimer;
}
}
}
}
}
下面这段是主程序:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace CH11Ex03
{
class Program
{
static void Main(string[] args)
{
Primes myPrimes = new Primes(2, 100);
foreach (long num in myPrimes)
{
Console.Write("{0}", num);
}
Console.ReadKey();
}
}
}
请达人帮我看看哪里有问题?
...全文
相关推荐
深入了解c# 迭代器和列举器
深入了解 C# 迭代器和列举器C# 迭代器和列举器是 C# 语言中两个重要的概念,它们之间存在紧密的联系,都是用于实现遍历集合中的元素的机制。
php和C#的yield迭代器实现方法对比分析
在探讨编程语言中的迭代器时,PHP和C#中的yield关键字是一个非常有趣的功能,它允许开发者以一种更简洁和高效的方式实现迭代器。
C#迭代器及Unity协程实例解析
C#迭代器及Unity协程实例解析C#迭代器是指在C#语言中实现的迭代器接口,主要用于遍历集合类对象。它主要包含两个接口:IEnumerable和IEnumerator。
C#设计模式迭代器示例
本教程将深入讲解如何在C#中实现迭代器模式。首先,让我们理解迭代器模式的基本组成。在C#中,迭代器通常包含以下组件:1.
C#中使用迭代器处理等待任务
在C# 4中,为了实现异步操作,我们需要手动管理`Task`对象和回调函数。例如,假设我们有一个异步读取流并写入另一个流的场景,如`CopyToAsync`方法所示。


