c# – 如何返回具有任意类型成员的IList
发布时间:2020-12-16 00:12:45 所属栏目:百科 来源:网络整理
导读:我不确定这是否可行,但是这里有:我有一个类动物园,其中包含动物类型字典 – 动物名单.例如 Cat Type - {Cat1,Cat2}Zebra Type - {Zebra1,Zebra2} Cat和Zebra是Animal的子类.现在Zoo有一个方法IList Animal GetAnimalsOfType(类型类型). 我希望返回值是所请
我不确定这是否可行,但是这里有:我有一个类动物园,其中包含动物类型字典 – >动物名单.例如
Cat Type -> {Cat1,Cat2} Zebra Type -> {Zebra1,Zebra2} Cat和Zebra是Animal的子类.现在Zoo有一个方法IList< Animal> GetAnimalsOfType(类型类型). 我希望返回值是所请求动物的类型,所以不要获得IList< Animal>我会得到一个IList< Cat>或IList< Zebra>取决于我在类型参数中传递的动物类型. 这可能吗?如果是这样的话? 解决方法
是的,这样的东西肯定可以使用泛型.我想你正在寻找这个:
IList<T> GetAnimalsOfType<T>() where T : Animal { return dictionary[typeof(T)].OfType<T>().ToList(); } 这和你在问题中提到的内容有所不同.该类型不作为参数传递.由于参数是在运行时传递的,因此如果返回强类型列表则没有意义.编译器无论如何都不会知道,你将无法使用它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 用Ajax配合Restull实现SpringMVC的文件上传
- ruby-on-rails-4 – Rails测试ActiveRecord错误
- 如何使用AJAX(jQuery)下载从TCPDF(PHP)生成的PDF文件?
- 携程火车票业务在 React Native 实践中踩过的坑
- 机器学习笔记(三)——正则化最小二乘法
- oracle – PL / SQL异常处理:do nothing(忽略异常)
- Beginners Guide to Getting Started with AS3 (Without Le
- PostgreSQL创建函数(CREATE FUNCTION)
- 关于使用Ajax传中文数据到后台接受乱码问题 data:{"dic
- 搭建C语言开发环境(Windows平台)汇总