繁体   English   中英

继承类为 function 参数

[英]Inherited classes as function parameter

我有 2 个类(MyClass1 和 MyClass2)都继承自 MyBaseClass。

我想写一个 function ,它将其中任何一个的列表作为参数,就像这样

private void DoStuff(List<MyBaseClass> input)

{

...

}

如何将列表传递给此 function?

你不能那样做,因为List<MyClass1>不是List<MyBaseClass> 在 Stack Overflow 上搜索通用差异,以解释为什么会出现这种情况。

可以做的一件事是使其通用:

private void DoStuff<T>(List<T> input) where T : MyBaseClass

或者,在 C# 4 和 .NET 4 中,如果您只需要对其进行迭代,则可以使用IEnumerable<T> ,它在T中是协变的:

private void DoStuff(IEnumerable<MyBaseClass> input)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM