问个泛型类的问题

yxlovemoney yxlovemoney 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
现在有这样几个类

//这个是父类

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求职面试的很全的资料,现传给大家,希望对大家以后求职面试有帮助!

FlyHigh518

java泛型类的定义与使用详解

主要为大家详细介绍了java泛型类定义与使用的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

weixin_38735987

Java泛型类与泛型方法的定义详解

主要介绍了Java泛型类与泛型方法的定义,结合实例形式详细分析了java泛型类与泛型方法定义、用法及相关操作注意事项,需要的朋友可以参考下

weixin_38500734

java 继承泛型类示例

java 继承泛型类示例 java 继承泛型类示例 java 继承泛型类示例

yangshusen55

介绍C# 泛型类在使用中约束

首先看一下泛型的基本语法 访问修饰符 返回类型 泛型方法名 <T>(T 参数)1):无法在泛型方法内部给任何 T 类型创建实例的对象,因为在泛型方法内部不知道传进来的对象有哪些构造函数2):约束是对内部的!(对于泛型方法)约束也是会被继承的!3):给泛型类 加类型(引用类型,值类型)的约束:where T:class,new ( )遇到的问题:在写MongodbHelper类的时候,为了能处理多种类别,所以如下定义了该类: 代码如下: public class MongodbHelper<T> {  。。。。。  }在该类的实现中有如下操作: 代码如下:mongo.Connect(); var

weixin_38523618
评论 3
收藏 已收藏
分享
返回顶部
yxlovemoney
C# 111,129 成员 642,539 内容