【发布时间】:2013-10-16 16:42:54
【问题描述】:
我正在查看 Internet 中已经存在的这种 Squares 扩展方法。我无法进行此编译。编译器报告类似 “非泛型类型 `System.Collections.IEnumerable' 不能与类型参数一起使用”。
任何想法下面这段代码有什么问题?
非常感谢任何帮助。
using System.IO;
using System;
using System.Collections;
static class Program {
static IEnumerable<int> Squares (this int from, int to) {
for (int i=from;i<=to;i++)
{
yield return (int)i*i;
}
}
static void Main(string[] args)
{
var min=1;
foreach (int i in min.Squares(4))
{
Console.WriteLine(i);
}
}
}
【问题讨论】:
-
您的术语在这里有点偏离。您得到的是编译器错误,而不是异常。异常发生在运行时。
-
@DanielHilgarth:是的,你是对的。已编辑:)
-
IEnumerable是一种类型,而不是一种方法,因此没有返回类型。IEnumerable<T>是一个不同的类型,它是具有一个类型参数的泛型类型 -
@RuneFS:酷。说得通。谢谢。
标签: c# .net .net-4.0 extension-methods