using System;
using System.Collections;
using System.Linq;
using System.Text;namespace TestIterator1
{
public class Tokens : IEnumerable
{
private string elements;
Tokens(string source,char delimiters )
{
elements = source.Split(delimiters);
}
public IEnumerator<char> GetEnumerator()
{
return new TokenEnumerator(this);
}
private class TokenEnumerator : IEnumerator
{
private int position = -1;
private Tokens t;
public TokenEnumerator(Tokens t)
{
this.t = t;
}
public bool MoveNext()
{
if (position < t.elements.Length - 1)
{
position++;
return true;
}
else { return false; }
}
public void Reset()
{
position = -1;
}
public object Current
{
get { return t.elements; }
}
}
}
class Program
{
static void Main(string[] args)
{
Tokens f = new Tokens("This is a well-done program!", new char { ' ', '-' });
foreach (string item in f)
{
Console.WriteLine(item);
}
Console.ReadKey();
}
}
}
运行后出显现错误:错误1 非泛型 类型“System.Collections.IEnumerator”不能与类型实参一起使用
这段代码我是照着书上编的,功能是隔一行显示一个字母。请问各位大侠,问题是不是红色部分代码没写好,要改怎么改啊?
using System.Collections;
using System.Linq;
using System.Text;namespace TestIterator1
{
public class Tokens : IEnumerable
{
private string elements;
Tokens(string source,char delimiters )
{
elements = source.Split(delimiters);
}
public IEnumerator<char> GetEnumerator()
{
return new TokenEnumerator(this);
}
private class TokenEnumerator : IEnumerator
{
private int position = -1;
private Tokens t;
public TokenEnumerator(Tokens t)
{
this.t = t;
}
public bool MoveNext()
{
if (position < t.elements.Length - 1)
{
position++;
return true;
}
else { return false; }
}
public void Reset()
{
position = -1;
}
public object Current
{
get { return t.elements; }
}
}
}
class Program
{
static void Main(string[] args)
{
Tokens f = new Tokens("This is a well-done program!", new char { ' ', '-' });
foreach (string item in f)
{
Console.WriteLine(item);
}
Console.ReadKey();
}
}
}
运行后出显现错误:错误1 非泛型 类型“System.Collections.IEnumerator”不能与类型实参一起使用
这段代码我是照着书上编的,功能是隔一行显示一个字母。请问各位大侠,问题是不是红色部分代码没写好,要改怎么改啊?
解决方案 »
- C#如何获取自己的QQ好友列表
- C#中网络编程的基础问题
- 欢迎高手 关于异步执行情况下的线程问题.
- 关于数据访问接口公共模块的设计(请高手指教,在线.....)
- 请教:sqlserver中建的表没有主键,但是在c#中需要删除该表里的记录,不知怎么办?要代码谢谢!
- 您好,请问GRIDVIEW空间中的RowDeleting删除时间中怎么去的该行的主键?
- 时间问题,我看到原来的帖子,试过好像都不行?
- DataGrid简单问题
- 高分求助:C++ TO C#
- 怎么在.net里通过编程生成Crystal Report的报表
- c#中使用正则表达式获取匹配内容
- 我很想知道这个问题是错在哪里了? 请高手指点,谢谢
using System.Collections.Generic;
错误 1 使用泛型 类型“System.Collections.Generic.IEnumerable<T>”需要“1”个类型实参.
{
return new TokenEnumerator(this);
}
红色去掉,非泛型的枚举器搞出一个泛型的实现方法,真乱
{
private string[] elements;
public Tokens(string source, char[] delimiters)
{
elements = source.Split(delimiters);
}
public IEnumerator<char> GetEnumerator()
{
return new TokenEnumerator(this);
}
private class TokenEnumerator : IEnumerator<char> {
private int position = -1;
private Tokens t;
public TokenEnumerator(Tokens t)
{
this.t = t;
}
public bool MoveNext()
{
if (position < t.elements.Length - 1)
{
position++;
return true;
}
else { return false; }
}
public void Reset()
{
position = -1;
}
public object Current
{
get { return t.elements; }
}
}
}
class Program
{
static void Main(string[] args)
{
Tokens f = new Tokens("This is a well-done program!", new[] { ' ', '-' });
foreach (var item in f)
{
Console.WriteLine(item);
}
Console.ReadKey();
}
}
还是不行,出现这样的错误:
错误 1 非泛型 类型“System.Collections.IEnumerable”不能与类型实参一起使用 2 非泛型 类型“System.Collections.IEnumerator”不能与类型实参一起使用 3 非泛型 类型“System.Collections.IEnumerator”不能与类型实参一起使用
这位大侠,能介绍一本好的适合C#入门的书不,谢谢啦。