【发布时间】:2012-10-15 17:30:24
【问题描述】:
好的。所以我目前正在尝试在 C# 中创建一个以接口为参数的接口列表。为了更清楚,让我举个例子:
public interface IPlate<T> where T : IWaffle {}
public interface IWaffles {}
public class BelgiumWaffle : IWaffle {}
public class FalafelWaffle : IWaffle {}
public class HugePlate : IPlate<BelgiumWaffle> {}
public class SmallPlate : IPlate<FalafelWaffle> {}
// Now, I want to do the following:
var plates = new List<IPlate<IWaffle>>();
plates.add(new HugePlate());
plates.add(new SmallPlate());
目标是能够将 IPlate 对象列表序列化为 XML。我希望使用泛型来做到这一点,但我不断收到错误消息,告诉我在尝试添加时存在一些参数错误(又名 - 类型不匹配)。只是不确定我在这里做错了什么。这对我来说似乎是正确的,但我一定是遗漏了一些东西(显然)。
更新:我应该提到这是.NET v3.5
更新:对不起!写关于板类定义的问题时,有些错别字。
【问题讨论】:
-
IWaffle有什么属性吗?是[可序列化]。盘子
呢? -
您的示例中没有
IPancake的定义。我猜你的意思是IWaffle? -
List
> 应该是 List > 吗?还有哪个 .Net 版本? -
这不是有效的 C# - 请编辑。 1) public class HugePlate
, 2) IPancake 是从哪里来的? -
Hmm HugePlate 和 SmallPlate 似乎没有实现 IPlate...typo?