c#-基本类型和继承类型的工作通用列表
作者:互联网
基本上,我使用的是为所有表创建实体对象的ORM(特别是LLBLGen).所有这些实体类型都从基类(或实际上是它们的集合)继承.我想创建一个扩展方法,该方法接受基类的List并返回一些字符串,但是我想传递继承的类型而无需显式转换.
例如,我有一个类似的功能:
string GetString(List<EntityBase2> list); // also tried List<IEntityCore>, which the base class implements
我想通过这样的事情:
List<ProductEntity> products = ... // populate it
string v = GetString(products);
但是我得到了编译器错误.
我如何完成创建此帮助器方法.如果可以的话,我想避免进行强制转换,但是如果这是最好的方法,那么至少我可以对此进行确认.
解决方法:
尝试这个:
string GetString<T>(List<T> list) where T : IEntityCore {...}
这样,您将获得一个通用方法,该方法采用实现IEntityCore的对象的列表.不需要强制转换,编译器将确保您传递正确的对象.从Framework 2.0开始工作.
标签:generics,c,net 来源: https://codeday.me/bug/20191210/2100335.html