问个泛型类的问题
现在有这样几个类
然后下面是子类
然后在一个泛型类里面这么写
这都是按照书上写的,但为什么会报这样的错
错误 1 “ConsoleExample.Farm<T>”不会实现接口成员“System.Collections.Generic.IEnumerable<T>.GetEnumerator()”。“ConsoleExample.Farm<T>.GetEnumerator()”或者是静态、非公共的,或者有错误的返回类型。 G:\c#file\ConsoleExample\ConsoleExample\Farm.cs 9 18 ConsoleExample
请问应该怎么解决呢?
//这个是父类
public abstract class Animal
{
protected string name;
public string Name
{
get
{
return name;
}
set { name = value; }
}
public Animal()
{
name = "the animal with no name";
}
public Animal(string newName)
{
name = newName;
}
public void Feed()
{
Console.WriteLine("{0} has been fed.", name);
}
public abstract void MakeANoise();
}
然后下面是子类
//Cow子类
public class Cow : Animal
{
public void Milk()
{
Console.WriteLine("{0} has been milked.", name);
}
public Cow(string newName)
: base(newName)
{ }
public override void MakeANoise()
{
Console.WriteLine("{0} says 'moo!'", name);
}
}
//SuperCow
public class SuperCow:Cow
{
public void Fly()
{
Console.WriteLine("{0} is flying!", name);
}
public SuperCow(string newName) : base(newName) { }
public override void MakeANoise()
{
Console.WriteLine("{0} says 'here I come to save the day!'", name);
}
}
然后在一个泛型类里面这么写
public class Farm<T> : IEnumerable<T>
where T : Animal
{
private List<T> animals = new List<T>();
public List<T> Animals
{
get { return animals; }
}
public IEnumerable<T> GetEnumerator()
{
return animals.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return animals.GetEnumerator();
}
public void MakeNoises()
{
foreach (T animal in animals)
animal.MakeANoise();
}
public void FeedTheAnimals()
{
foreach (T animal in animals)
animal.Feed();
}
public Farm<Cow> GetCows()
{
Farm<Cow> cowFarm = new Farm<Cow>();
foreach (T animal in animals)
{
if (animal is Cow)
{
cowFarm.Animals.Add(animal as Cow);
}
}
return cowFarm;
}
}
这都是按照书上写的,但为什么会报这样的错
错误 1 “ConsoleExample.Farm<T>”不会实现接口成员“System.Collections.Generic.IEnumerable<T>.GetEnumerator()”。“ConsoleExample.Farm<T>.GetEnumerator()”或者是静态、非公共的,或者有错误的返回类型。 G:\c#file\ConsoleExample\ConsoleExample\Farm.cs 9 18 ConsoleExample
请问应该怎么解决呢?
...全文
相关推荐
JAVA求职面试1000问(65页)
JAVA求职面试1000问,本人收集整理,是一套java求职面试的很全的资料,现传给大家,希望对大家以后求职面试有帮助!
java泛型类的定义与使用详解
主要为大家详细介绍了java泛型类定义与使用的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
Java泛型类与泛型方法的定义详解
主要介绍了Java泛型类与泛型方法的定义,结合实例形式详细分析了java泛型类与泛型方法定义、用法及相关操作注意事项,需要的朋友可以参考下
java 继承泛型类示例
java 继承泛型类示例 java 继承泛型类示例 java 继承泛型类示例
介绍C# 泛型类在使用中约束
首先看一下泛型的基本语法 访问修饰符 返回类型 泛型方法名 <T>(T 参数)1):无法在泛型方法内部给任何 T 类型创建实例的对象,因为在泛型方法内部不知道传进来的对象有哪些构造函数2):约束是对内部的!(对于泛型方法)约束也是会被继承的!3):给泛型类 加类型(引用类型,值类型)的约束:where T:class,new ( )遇到的问题:在写MongodbHelper类的时候,为了能处理多种类别,所以如下定义了该类: 代码如下: public class MongodbHelper<T> { 。。。。。 }在该类的实现中有如下操作: 代码如下:mongo.Connect(); var


