Tag: 强制转换

无法将List 传递给期望List 的方法,其中Foo:IFoo

我有一个实现IFoo接口的类Foo 。 我有一个方法将List作为参数。 但是,它无法从List转换为List – 这让我感到惊讶,因为Foo实现了IFoo接口。 我怎样才能解决这个问题,为什么会出现这种情况? (总是很好地从错误中吸取教训)

C#对象到数组

使用reflection我有一个对象,我需要将其转换为可迭代的项目列表(类型未知,将是对象)。 使用Watch窗口我可以看到我的对象是某种类型的数组,因为它告诉我元素的数量,我可以爆炸树视图来查看元素本身。 首先,我需要检查传递的对象是某种数组(可能是List,可能是object []等)。 然后我需要遍历该数组。 但是,我无法进行类型转换。 这是我如何使用它(缩写): private static void Example(object instance, PropertyInfo propInfo) { object anArray = propInfo.GetValue(instance, null); ArrayList myList = anArray as ArrayList; foreach (object element in myList) { // etc } } 我尝试了各种不同的演员阵容。 以上不会引发exception,但是当anArray实际存在且包含项目时,mylist为null。 保存的实际实例是强类型List ,但如果需要,可以采用有限的表单子集。 但是练习的重点是这个Example()方法不知道属性的基本类型。